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/decode_bmp.c | |
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/decode_bmp.c')
-rw-r--r-- | examples/decode_bmp.c | 10 |
1 files changed, 7 insertions, 3 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; } |