Hi~
I think there is some problem in evas_cache_image_size_set function. In function , it create new evas_cache_image im2. But it set original evas_cache_image im's reference to 1 and not set im2's reference. There is problem below scenario. 1. object 1 file set -> it create Image entry 1 and object1->engine_data= image entry 1 -> image entry 1's rerences =1 2. object 2 file set same path and size with 1 -> object1->engine_data= image entry 1 -> image entry 1's rerences =2 3. object 3 file set same path and size with 1 -> object1->engine_data= image entry 1 -> image entry 1's rerences =3 4. object 3 call evas_object_image_size_set ->it calls evas_cache_image_size_set ->here it create new image entry 2. -> but it change image entry 1's reference to 1 5. If object 2 deleted, image entry 1 also disappeared. (because _evas_cache_image_dirty_add(image entry 1) is called and ref is 1. 6. when object 1 is rendered, the image entry of object 1 is already free, so it make problem. So this patch solve these problem. But I have still question. Even though application calls evas_object_image_size_set related with object 3, it maybe must not evas_cache_image_size_set. It make cache image 1 (which object 1 and object 2 reference) dirty. Thanks.
evas_cache_image_size_set.patch
Description: Binary data
------------------------------------------------------------------------------ Achieve unprecedented app performance and reliability What every C/C++ and Fortran developer should know. Learn how Intel has extended the reach of its next-generation tools to help boost performance applications - inlcuding clusters. http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel