farbfeld

suckless image format with conversion tools
git clone git://git.suckless.org/farbfeld
Log | Files | Refs | README | LICENSE

commit d8501da4900ecd17a2eb9c83685e1c2eac7bfde6
parent 3c79ee8c9bad9e08e8965832d8d930ff11d40cd6
Author: sin <sin@2f30.org>
Date:   Tue, 29 Jul 2014 12:44:02 +0100

Don't bother to cleanup in error cases

These tools are "one-shot", nobody cares about memory leaks while
the program is running.

Bring back -Os, no more false positives because there's no interaction
between gotos and setjmp/longjmp.

Diffstat:
Mconfig.mk | 2+-
Mif2png.c | 15+++++----------
Mpng2if.c | 7++-----
3 files changed, 8 insertions(+), 16 deletions(-)

diff --git a/config.mk b/config.mk @@ -7,7 +7,7 @@ PREFIX = /usr/local LIBS = -lpng # flags -CFLAGS = -std=c90 -ansi -pedantic -Wall -Wextra +CFLAGS = -std=c90 -ansi -pedantic -Wall -Wextra -Os LDFLAGS = -s ${LIBS} # compiler and linker diff --git a/if2png.c b/if2png.c @@ -40,11 +40,11 @@ main(int argc, char *argv[]) /* header */ if (fread(hdr, 1, strlen(HEADER_FORMAT), stdin) != strlen(HEADER_FORMAT)) { fprintf(stderr, "failed to read from stdin or input too short\n"); - goto err; + return EXIT_FAILURE; } if (memcmp("imagefile", hdr, 9)) { fprintf(stderr, "invalid magic in header\n"); - goto err; + return EXIT_FAILURE; } width = ntohl((hdr[9] << 0) | (hdr[10] << 8) | (hdr[11] << 16) | (hdr[12] << 24)); height = ntohl((hdr[13] << 0) | (hdr[14] << 8) | (hdr[15] << 16) | (hdr[16] << 24)); @@ -55,7 +55,7 @@ main(int argc, char *argv[]) if (!png_struct_p || !png_info_p || setjmp(png_jmpbuf(png_struct_p))) { fprintf(stderr, "failed to initialize libpng\n"); - goto err; + return EXIT_FAILURE; } png_init_io(png_struct_p, stdout); png_set_IHDR(png_struct_p, png_info_p, width, height, 8, PNG_COLOR_TYPE_RGB_ALPHA, @@ -67,13 +67,13 @@ main(int argc, char *argv[]) png_row = malloc(png_row_len); if (!png_row) { fprintf(stderr, "failed to allocate row-buffer\n"); - goto err; + return EXIT_FAILURE; } for (i = 0; i < height; ++i) { if (fread(png_row, 1, png_row_len, stdin) != png_row_len) { fprintf(stderr, "unexpected EOF or row-skew at %lu\n", (unsigned long)i); - goto err; + return EXIT_FAILURE; } png_write_row(png_struct_p, png_row); } @@ -84,9 +84,4 @@ main(int argc, char *argv[]) png_destroy_write_struct(&png_struct_p, NULL); free(png_row); return EXIT_SUCCESS; -err: - png_free_data(png_struct_p, png_info_p, PNG_FREE_ALL, -1); - png_destroy_write_struct(&png_struct_p, NULL); - free(png_row); - return EXIT_FAILURE; } diff --git a/png2if.c b/png2if.c @@ -43,7 +43,7 @@ main(int argc, char *argv[]) if (!png_struct_p || !png_info_p || setjmp(png_jmpbuf(png_struct_p))) { fprintf(stderr, "failed to initialize libpng"); - goto err; + return EXIT_FAILURE; } png_init_io(png_struct_p, stdin); png_set_add_alpha(png_struct_p, 255, PNG_FILLER_AFTER); @@ -66,14 +66,11 @@ main(int argc, char *argv[]) for (i = 0; i < height; i++) { if (fwrite(png_row_p[i], 1, png_row_len, stdout) != png_row_len) { fprintf(stderr, "fwrite() failed\n"); - goto err; + return EXIT_FAILURE; } } /* clean up */ png_destroy_read_struct(&png_struct_p, &png_info_p, NULL); return EXIT_SUCCESS; -err: - png_destroy_read_struct(&png_struct_p, &png_info_p, NULL); - return EXIT_FAILURE; }