it* My version of sent Err codevoid.de 70 i Err codevoid.de 70 hgit clone git://git.codevoid.de/sent-sdk.git URL:git://git.codevoid.de/sent-sdk.git codevoid.de 70 1Log /git/sent-sdk/log.gph codevoid.de 70 1Files /git/sent-sdk/files.gph codevoid.de 70 1Refs /git/sent-sdk/refs.gph codevoid.de 70 1README /git/sent-sdk/file/README.md.gph codevoid.de 70 1LICENSE /git/sent-sdk/file/LICENSE.gph codevoid.de 70 i--- Err codevoid.de 70 1commit f6455efd52cdcfcb25030a8f3644162e8b861573 /git/sent-sdk/commit/f6455efd52cdcfcb25030a8f3644162e8b861573.gph codevoid.de 70 1parent 67ec8b1547b9e58155f0966731820b25e71240e8 /git/sent-sdk/commit/67ec8b1547b9e58155f0966731820b25e71240e8.gph codevoid.de 70 hAuthor: Markus Teich URL:mailto:markus.teich@stusta.mhn.de codevoid.de 70 iDate: Wed, 11 Nov 2015 18:49:57 +0100 Err codevoid.de 70 i Err codevoid.de 70 isimplify png cleanup Err codevoid.de 70 i Err codevoid.de 70 iDiffstat: Err codevoid.de 70 i M sent.c | 24 ++++++++++++++++-------- Err codevoid.de 70 i Err codevoid.de 70 i1 file changed, 16 insertions(+), 8 deletions(-) Err codevoid.de 70 i--- Err codevoid.de 70 1diff --git a/sent.c b/sent.c /git/sent-sdk/file/sent.c.gph codevoid.de 70 it@@ -79,6 +79,7 @@ typedef struct { Err codevoid.de 70 i } Shortcut; Err codevoid.de 70 i Err codevoid.de 70 i static Image *pngopen(char *filename); Err codevoid.de 70 i+static void pngfree(Image *img); Err codevoid.de 70 i static int pngread(Image *img); Err codevoid.de 70 i static int pngprepare(Image *img); Err codevoid.de 70 i static void pngscale(Image *img); Err codevoid.de 70 it@@ -146,14 +147,9 @@ Image *pngopen(char *filename) Err codevoid.de 70 i free(img); Err codevoid.de 70 i return NULL; Err codevoid.de 70 i } Err codevoid.de 70 i- if (!(img->info_ptr = png_create_info_struct(img->png_ptr))) { Err codevoid.de 70 i- png_destroy_read_struct(&img->png_ptr, NULL, NULL); Err codevoid.de 70 i- free(img); Err codevoid.de 70 i- return NULL; Err codevoid.de 70 i- } Err codevoid.de 70 i- if (setjmp(png_jmpbuf(img->png_ptr))) { Err codevoid.de 70 i- png_destroy_read_struct(&img->png_ptr, &img->info_ptr, NULL); Err codevoid.de 70 i- free(img); Err codevoid.de 70 i+ if (!(img->info_ptr = png_create_info_struct(img->png_ptr)) Err codevoid.de 70 i+ || setjmp(png_jmpbuf(img->png_ptr))) { Err codevoid.de 70 i+ pngfree(img); Err codevoid.de 70 i return NULL; Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 it@@ -167,6 +163,12 @@ Image *pngopen(char *filename) Err codevoid.de 70 i return img; Err codevoid.de 70 i } Err codevoid.de 70 i Err codevoid.de 70 i+void pngfree(Image *img) Err codevoid.de 70 i+{ Err codevoid.de 70 i+ png_destroy_read_struct(&img->png_ptr, img->info_ptr ? &img->info_ptr : NULL, NULL); Err codevoid.de 70 i+ free(img); Err codevoid.de 70 i+} Err codevoid.de 70 i+ Err codevoid.de 70 i int pngread(Image *img) Err codevoid.de 70 i { Err codevoid.de 70 i unsigned int y; Err codevoid.de 70 it@@ -330,6 +332,8 @@ void getfontsize(char *str, unsigned int *width, unsigned int *height) Err codevoid.de 70 i Err codevoid.de 70 i void cleanup() Err codevoid.de 70 i { Err codevoid.de 70 i+ unsigned int i; Err codevoid.de 70 i+ Err codevoid.de 70 i drw_scm_free(sc); Err codevoid.de 70 i drw_free(d); Err codevoid.de 70 i Err codevoid.de 70 it@@ -337,6 +341,10 @@ void cleanup() Err codevoid.de 70 i XSync(xw.dpy, False); Err codevoid.de 70 i XCloseDisplay(xw.dpy); Err codevoid.de 70 i if (slides) { Err codevoid.de 70 i+ for (i = 0; i < slidecount; i++) { Err codevoid.de 70 i+ if (slides[i].img) Err codevoid.de 70 i+ pngfree(slides[i].img); Err codevoid.de 70 i+ } Err codevoid.de 70 i free(slides); Err codevoid.de 70 i slides = NULL; Err codevoid.de 70 i } Err codevoid.de 70 .