From 3e1239f678d87471dfd581cf95f31a60a509d90f Mon Sep 17 00:00:00 2001 From: Sean Fox Date: Sat, 24 Jan 2009 19:02:19 +0000 Subject: Fix silly memory leaks. svn path=/trunk/libnsbmp/; revision=6250 --- examples/decode_bmp.c | 10 +++++++--- examples/decode_ico.c | 10 +++++++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/examples/decode_bmp.c b/examples/decode_bmp.c index 92efd34..43b0970 100644 --- a/examples/decode_bmp.c +++ b/examples/decode_bmp.c @@ -43,6 +43,7 @@ int main(int argc, char *argv[]) bmp_result code; bmp_image bmp; size_t size; + unsigned short res = 0; if (argc != 2) { fprintf(stderr, "Usage: %s image.bmp\n", argv[0]); @@ -59,7 +60,8 @@ int main(int argc, char *argv[]) code = bmp_analyse(&bmp, size, data); if (code != BMP_OK) { warning("bmp_analyse", code); - exit(1); + res = 1; + goto cleanup; } /* decode the image */ @@ -67,7 +69,8 @@ int main(int argc, char *argv[]) /* code = bmp_decode_trans(&bmp, TRANSPARENT_COLOR); */ if (code != BMP_OK) { warning("bmp_decode", code); - exit(1); + res = 1; + goto cleanup; } printf("P3\n"); @@ -91,11 +94,12 @@ int main(int argc, char *argv[]) } } +cleanup: /* clean up */ bmp_finalise(&bmp); free(data); - return 0; + return res; } diff --git a/examples/decode_ico.c b/examples/decode_ico.c index c917c99..571c566 100644 --- a/examples/decode_ico.c +++ b/examples/decode_ico.c @@ -49,6 +49,7 @@ int main(int argc, char *argv[]) bmp_result code; struct bmp_image *bmp; size_t size; + unsigned short res = 0; if ((argc < 2) || (argc > 4)) { fprintf(stderr, "Usage: %s collection.ico [width=255] [height=255]\n", argv[0]); @@ -67,7 +68,8 @@ int main(int argc, char *argv[]) code = ico_analyse(&ico, size, data); if (code != BMP_OK) { warning("ico_analyse", code); - exit(1); + res = 1; + goto cleanup; } /* decode the image */ @@ -78,7 +80,8 @@ int main(int argc, char *argv[]) /* code = bmp_decode_trans(bmp, TRANSPARENT_COLOR); */ if (code != BMP_OK) { warning("bmp_decode", code); - exit(1); + res = 1; + goto cleanup; } printf("P3\n"); @@ -102,11 +105,12 @@ int main(int argc, char *argv[]) } } +cleanup: /* clean up */ ico_finalise(&ico); free(data); - return 0; + return res; } -- cgit v1.2.3