diff options
author | Sean Fox <dyntryx@gmail.com> | 2009-01-24 19:02:19 +0000 |
---|---|---|
committer | Sean Fox <dyntryx@gmail.com> | 2009-01-24 19:02:19 +0000 |
commit | 3e1239f678d87471dfd581cf95f31a60a509d90f (patch) | |
tree | 3b7a798e11275b5a694aabd9d3f179c2546fb401 /examples | |
parent | dbf879a4defdf06743230cb8c88f38ee06b37837 (diff) | |
download | libnsbmp-3e1239f678d87471dfd581cf95f31a60a509d90f.tar.gz libnsbmp-3e1239f678d87471dfd581cf95f31a60a509d90f.tar.bz2 |
Fix silly memory leaks.
svn path=/trunk/libnsbmp/; revision=6250
Diffstat (limited to 'examples')
-rw-r--r-- | examples/decode_bmp.c | 10 | ||||
-rw-r--r-- | 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; } |