X-Git-Url: http://git.imager.perl.org/imager.git/blobdiff_plain/12d258260fdeecfccd34bb092cab01e1f353e4d3..704bb832b07facaae23486df542baf457668760f:/bmp.c diff --git a/bmp.c b/bmp.c index 6c9faea6..286b3dc8 100644 --- a/bmp.c +++ b/bmp.c @@ -278,7 +278,7 @@ write_packed(io_glue *ig, char *format, ...) { break; default: - m_fatal(1, "Unknown read_packed format code 0x%02x", *format); + m_fatal(1, "Unknown write_packed format code 0x%02x", *format); } ++format; } @@ -432,6 +432,8 @@ write_1bit_data(io_glue *ig, i_img *im) { myfree(packed); myfree(line); + ig->closecb(ig); + return 1; } @@ -480,6 +482,8 @@ write_4bit_data(io_glue *ig, i_img *im) { myfree(packed); myfree(line); + ig->closecb(ig); + return 1; } @@ -517,6 +521,8 @@ write_8bit_data(io_glue *ig, i_img *im) { } myfree(line); + ig->closecb(ig); + return 1; } @@ -545,6 +551,7 @@ write_24bit_data(io_glue *ig, i_img *im) { return 0; chans = im->channels >= 3 ? bgr_chans : grey_chans; samples = mymalloc(line_size); + memset(samples, 0, line_size); for (y = im->ysize-1; y >= 0; --y) { i_gsamp(im, 0, im->xsize, y, samples, chans, 3); if (ig->writecb(ig, samples, line_size) < 0) { @@ -555,6 +562,8 @@ write_24bit_data(io_glue *ig, i_img *im) { } myfree(samples); + ig->closecb(ig); + return 1; } @@ -654,6 +663,8 @@ read_1bit_bmp(io_glue *ig, int xsize, int ysize, int clr_used) { y += yinc; } + myfree(packed); + myfree(line); return im; } @@ -726,6 +737,8 @@ read_4bit_bmp(io_glue *ig, int xsize, int ysize, int clr_used, i_ppal(im, 0, xsize, y, line); y += yinc; } + myfree(packed); + myfree(line); } else if (compression == BI_RLE4) { int read_size;