Fix soft16 preload by replicating Image_Entry::info.

Software 16bpp variants were crashing if using preload as the
Image_Entry that was used by preload did not keep the loader and
module information, since these were only set in the
Soft16_Image::source.  Now we copy these members while the source is
live.



SVN revision: 50299
This commit is contained in:
Gustavo Sverzut Barbieri 2010-07-16 22:47:31 +00:00
parent 01d20339dd
commit a7e471700b
1 changed files with 3 additions and 0 deletions

View File

@ -169,6 +169,7 @@ _evas_common_load_soft16_image_from_file(Image_Entry *ie)
sim->cache_entry.w = sim->source->cache_entry.w;
sim->cache_entry.h = sim->source->cache_entry.h;
ie->flags.alpha = im->cache_entry.flags.alpha;
sim->cache_entry.info = im->cache_entry.info;
if (sim->stride < 0) sim->stride = _calc_stride(sim->cache_entry.w);
return 0;
@ -288,6 +289,8 @@ _evas_common_load_soft16_image_data_from_file(Image_Entry *ie)
soft16_image_convert_from_rgb(im, sp);
}
evas_cache_image_drop(&im->source->cache_entry);
im->cache_entry.info.module = NULL;
im->cache_entry.info.loader = NULL;
im->source = NULL;
return 0;