- misc untested shrinkage:
$ ./scripts/bloat-o-meter _bb_un.oorig busybox_unstripped function old new delta fbsplash_main 595 985 +390 fb_drawimage 493 - -493 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 1/0 up/down: 390/-493) Total: -103 bytes $ size miscutils/fbsplash.o* text data bss dec hex filename 2019 0 0 2019 7e3 miscutils/fbsplash.o.oorig 1857 0 0 1857 741 miscutils/fbsplash.o.new
This commit is contained in:
parent
52b56b7585
commit
4efcec9378
@ -87,7 +87,7 @@ static void fb_open(const char *strfb_device)
|
|||||||
* BYTES_PER_PIXEL /*(G.scr_var.bits_per_pixel / 8)*/ ,
|
* BYTES_PER_PIXEL /*(G.scr_var.bits_per_pixel / 8)*/ ,
|
||||||
PROT_WRITE, MAP_SHARED, fbfd, 0);
|
PROT_WRITE, MAP_SHARED, fbfd, 0);
|
||||||
if (G.addr == MAP_FAILED)
|
if (G.addr == MAP_FAILED)
|
||||||
bb_perror_msg_and_die("can't mmap %s", strfb_device);
|
bb_perror_msg_and_die("mmap");
|
||||||
close(fbfd);
|
close(fbfd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -121,7 +121,7 @@ static void fb_drawrectangle(void)
|
|||||||
// vertical lines
|
// vertical lines
|
||||||
ptr1 = (DATA*)(G.addr + (G.nbar_posy * G.scr_var.xres + G.nbar_posx) * BYTES_PER_PIXEL);
|
ptr1 = (DATA*)(G.addr + (G.nbar_posy * G.scr_var.xres + G.nbar_posx) * BYTES_PER_PIXEL);
|
||||||
ptr2 = (DATA*)(G.addr + (G.nbar_posy * G.scr_var.xres + G.nbar_posx + G.nbar_width - 1) * BYTES_PER_PIXEL);
|
ptr2 = (DATA*)(G.addr + (G.nbar_posy * G.scr_var.xres + G.nbar_posx + G.nbar_width - 1) * BYTES_PER_PIXEL);
|
||||||
cnt = G.nbar_posy + G.nbar_height - 1 - G.nbar_posy;
|
cnt = G.nbar_height - 1 /* HUH?! G.nbar_posy + G.nbar_height - 1 - G.nbar_posy*/;
|
||||||
do {
|
do {
|
||||||
*ptr1 = thispix; ptr1 += G.scr_var.xres;
|
*ptr1 = thispix; ptr1 += G.scr_var.xres;
|
||||||
*ptr2 = thispix; ptr2 += G.scr_var.xres;
|
*ptr2 = thispix; ptr2 += G.scr_var.xres;
|
||||||
@ -216,18 +216,18 @@ static void fb_drawprogressbar(unsigned percent)
|
|||||||
*/
|
*/
|
||||||
static void fb_drawimage(void)
|
static void fb_drawimage(void)
|
||||||
{
|
{
|
||||||
char head[256];
|
RESERVE_CONFIG_BUFFER(head, 256);
|
||||||
char s[80];
|
RESERVE_CONFIG_BUFFER(s, 80);
|
||||||
FILE *theme_file;
|
int theme_file;
|
||||||
unsigned char *pixline;
|
unsigned char *pixline;
|
||||||
unsigned i, j, width, height, line_size;
|
unsigned i, j, width, height, line_size;
|
||||||
|
|
||||||
memset(head, 0, sizeof(head));
|
memset(head, 0, sizeof(head));
|
||||||
theme_file = xfopen_stdin(G.image_filename);
|
theme_file = open_or_warn_stdin(G.image_filename);
|
||||||
|
|
||||||
// parse ppm header
|
// parse ppm header
|
||||||
while (1) {
|
while (1) {
|
||||||
if (fgets(s, sizeof(s), theme_file) == NULL)
|
if (safe_read(theme_file, s, sizeof(s)) <= 0)
|
||||||
bb_error_msg_and_die("bad PPM file '%s'", G.image_filename);
|
bb_error_msg_and_die("bad PPM file '%s'", G.image_filename);
|
||||||
|
|
||||||
if (s[0] == '#')
|
if (s[0] == '#')
|
||||||
@ -257,7 +257,7 @@ static void fb_drawimage(void)
|
|||||||
unsigned char *pixel = pixline;
|
unsigned char *pixel = pixline;
|
||||||
DATA *src = (DATA *)(G.addr + j * G.scr_fix.line_length);
|
DATA *src = (DATA *)(G.addr + j * G.scr_fix.line_length);
|
||||||
|
|
||||||
if (fread(pixline, 1, line_size, theme_file) != line_size)
|
if (safe_read(theme_file, pixline, line_size) != line_size)
|
||||||
bb_error_msg_and_die("bad PPM file '%s'", G.image_filename);
|
bb_error_msg_and_die("bad PPM file '%s'", G.image_filename);
|
||||||
for (i = 0; i < width; i++) {
|
for (i = 0; i < width; i++) {
|
||||||
unsigned thispix;
|
unsigned thispix;
|
||||||
@ -268,8 +268,12 @@ static void fb_drawimage(void)
|
|||||||
pixel += 3;
|
pixel += 3;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
free(pixline);
|
if (ENABLE_FEATURE_CLEAN_UP) {
|
||||||
fclose(theme_file);
|
free(pixline);
|
||||||
|
RELEASE_CONFIG_BUFFER(s);
|
||||||
|
RELEASE_CONFIG_BUFFER(head);
|
||||||
|
}
|
||||||
|
close(theme_file);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -294,7 +298,7 @@ static void init(const char *cfg_filename)
|
|||||||
unsigned val = xatoi_u(token[1]);
|
unsigned val = xatoi_u(token[1]);
|
||||||
int i = index_in_strings(param_names, token[0]);
|
int i = index_in_strings(param_names, token[0]);
|
||||||
if (i < 0)
|
if (i < 0)
|
||||||
bb_error_msg_and_die("syntax error: '%s'", token[0]);
|
bb_error_msg_and_die("syntax error: %s", token[0]);
|
||||||
if (i >= 0 && i < 7)
|
if (i >= 0 && i < 7)
|
||||||
G.ns[i] = val;
|
G.ns[i] = val;
|
||||||
#if DEBUG
|
#if DEBUG
|
||||||
|
Loading…
Reference in New Issue
Block a user