X-Git-Url: http://git.draconx.ca/gitweb/liblbx.git/blobdiff_plain/4aed5deccace2e80cf7efa80ab451628c3ca2c3b..fc8dd8be3744680d93c490227be4db8628377d3c:/src/lbximg.c diff --git a/src/lbximg.c b/src/lbximg.c index 1cf765d..1173538 100644 --- a/src/lbximg.c +++ b/src/lbximg.c @@ -163,7 +163,6 @@ int outpng(unsigned int frameno, } if (setjmp(png_jmpbuf(png))) { - free(row); png_destroy_write_struct(&png, &info); goto err; } @@ -221,12 +220,11 @@ int outpng(unsigned int frameno, png_destroy_write_struct(&png, &info); fclose(of); + free(row); if (verbose) printf("wrote %s\n", name); - return 0; - err: fclose(of); remove(name); @@ -236,7 +234,7 @@ err: static int loadoverride(FILE *f, struct lbx_colour palette[static 256]) { - LBX_IMG *overimg = lbximg_fopen(f); + LBX_IMG *overimg = lbximg_open(f, &lbx_default_fops, NULL); struct lbx_imginfo info; if (!overimg) { @@ -288,7 +286,7 @@ static int loadpalette(LBX_IMG *img, struct lbx_imginfo *info, } /* Read the external palette, if any. */ - if (palf && lbximg_loadpalette(palf, palette) == -1) { + if (palf && lbximg_loadpalette(palf, &lbx_default_fops, palette) != 0) { errmsg("error reading external palette: %s\n", lbx_strerror()); return -1; } @@ -317,7 +315,7 @@ int decode(LBX_IMG *img, FILE *palf, FILE *override, char **argv) lbximg_getinfo(img, &info); - framebits = malloc(info.nframes / CHAR_BIT + 1); + framebits = calloc(1, info.nframes / CHAR_BIT + 1); if (!framebits) { return EXIT_FAILURE; } @@ -468,6 +466,7 @@ int main(int argc, char **argv) printf("%s is %ux%u LBX image, %u frame(s)%s%s\n", name, info.width, info.height, info.nframes, info.palettesz ? ", embedded palette" : "", + info.chunk ? ", chunked" : "", info.looping ? ", loops" : ""); }