binary mode... and...

close file AFTER finish off of decompress! :)


SVN revision: 12046
This commit is contained in:
Carsten Haitzler 2004-10-28 09:54:02 +00:00
parent f1cd7eb5c7
commit f5d79011d1
2 changed files with 13 additions and 4 deletions

View File

@ -368,10 +368,10 @@ eet_data_image_jpeg_rgb_decode(void *data, int size, int *w, int *h)
}
}
free(tdata);
_eet_memfile_read_close(f);
/* end data decoding */
jpeg_finish_decompress(&cinfo);
jpeg_destroy_decompress(&cinfo);
_eet_memfile_read_close(f);
return d;
}
@ -387,6 +387,15 @@ eet_data_image_jpeg_alpha_decode(void *data, int size, unsigned int *d, int *w,
f = _eet_memfile_read_open(data, (size_t)size);
if (!f) return NULL;
if (0)
{
char buf[1];
while (fread(buf, 1, 1, f));
_eet_memfile_read_close(f);
return d;
}
cinfo.err = jpeg_std_error(&(jerr.pub));
jerr.pub.error_exit = _JPEGFatalErrorHandler;
jerr.pub.emit_message = _JPEGErrorHandler2;
@ -445,7 +454,7 @@ eet_data_image_jpeg_alpha_decode(void *data, int size, unsigned int *d, int *w,
for (l = 0; l < (*h); l += cinfo.rec_outbuf_height)
{
jpeg_read_scanlines(&cinfo, line, cinfo.rec_outbuf_height);
scans = cinfo.rec_outbuf_height;
scans = cinfo.rec_outbuf_height;
if (((*h) - l) < scans) scans = (*h) - l;
ptr = tdata;
for (y = 0; y < scans; y++)
@ -485,10 +494,10 @@ eet_data_image_jpeg_alpha_decode(void *data, int size, unsigned int *d, int *w,
}
}
free(tdata);
_eet_memfile_read_close(f);
/* end data decoding */
jpeg_finish_decompress(&cinfo);
jpeg_destroy_decompress(&cinfo);
_eet_memfile_read_close(f);
return d;
}

View File

@ -5,7 +5,7 @@ FILE *
_eet_memfile_read_open(void *data, size_t size)
{
#ifdef HAVE_FMEMOPEN
return (FILE *)fmemopen(data, size, "r");
return (FILE *)fmemopen(data, size, "rb");
#else
FILE *f;