aaah yes - the flush will ... possibly delete the image - in fract almost
authorraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 21 May 2010 07:44:07 +0000 (07:44 +0000)
committerraster <raster@7cbeb6ba-43b4-40fd-8cce-4c39aea84d33>
Fri, 21 May 2010 07:44:07 +0000 (07:44 +0000)
definitely as it got to 0 fref. unlocking the image is bad as it was just
deleted. do the delete (cache fluch) after unlock.

git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@49089 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33

src/lib/cache/evas_cache_image.c

index 5bf0e84..5d03422 100644 (file)
@@ -431,6 +431,7 @@ _evas_cache_image_async_end(void *data)
 static void
 _evas_cache_image_async_cancel(void *data)
 {
+   Evas_Cache_Image *cache = NULL;
    Image_Entry *ie = (Image_Entry *) data;
 
    ie->preload = NULL;
@@ -456,11 +457,12 @@ _evas_cache_image_async_cancel(void *data)
      {
        _evas_cache_image_remove_activ(ie->cache, ie);
        _evas_cache_image_make_inactiv(ie->cache, ie, ie->cache_key);
-       evas_cache_image_flush(ie->cache);
+        cache = ie->cache;
      }
 #ifdef EVAS_FRAME_QUEUING
    LKU(ie->lock_references);
 #endif
+   if (cache) evas_cache_image_flush(cache);
 }
 
 static int