oops and a leak in the png loader.. and fix a potential leak in the jpeg

saver for when things go awry.


SVN revision: 4308
This commit is contained in:
Carsten Haitzler 2001-03-04 04:33:59 +00:00
parent 22c26c8c2b
commit 76b69f298e
2 changed files with 8 additions and 4 deletions

View File

@ -336,6 +336,7 @@ save(ImlibImage * im, ImlibProgressFunction progress,
if (!progress(im, per, 0, (y - l), im->w, l))
{
jpeg_finish_compress(&cinfo);
jpeg_destroy_compress(&cinfo);
free(buf);
fclose(f);
return 2;

View File

@ -304,7 +304,8 @@ save(ImlibImage * im, ImlibProgressFunction progress,
if (setjmp(png_ptr->jmpbuf))
{
fclose(f);
png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
png_destroy_write_struct(&png_ptr, (png_infopp) &info_ptr);
png_destroy_info_struct(png_ptr, (png_infopp) &info_ptr);
return 0;
}
png_init_io(png_ptr, f);
@ -387,7 +388,8 @@ save(ImlibImage * im, ImlibProgressFunction progress,
if (data)
free(data);
png_write_end(png_ptr, info_ptr);
png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
png_destroy_write_struct(&png_ptr, (png_infopp) &info_ptr);
png_destroy_info_struct(png_ptr, (png_infopp) &info_ptr);
fclose(f);
return 2;
}
@ -400,8 +402,9 @@ save(ImlibImage * im, ImlibProgressFunction progress,
if (data)
free(data);
png_write_end(png_ptr, info_ptr);
png_destroy_write_struct(&png_ptr, (png_infopp) NULL);
png_destroy_write_struct(&png_ptr, (png_infopp) &info_ptr);
png_destroy_info_struct(png_ptr, (png_infopp) &info_ptr);
fclose(f);
return 1;
}