evas: reorder cache destruction.

This commit is contained in:
Cedric Bail 2013-05-09 09:57:37 +09:00
parent 2c8ff31788
commit 232c9f17ba
1 changed files with 10 additions and 12 deletions

View File

@ -550,16 +550,16 @@ evas_cache_image_shutdown(Evas_Cache_Image *cache)
_evas_cache_image_entry_preload_remove(im, NULL); _evas_cache_image_entry_preload_remove(im, NULL);
} }
evas_async_events_process(); evas_async_events_process();
while (cache->lru)
{ EINA_INLIST_FREE(cache->lru, im)
im = (Image_Entry *)cache->lru; _evas_cache_image_entry_delete(cache, im);
_evas_cache_image_entry_delete(cache, im); EINA_INLIST_FREE(cache->lru_nodata, im)
} _evas_cache_image_entry_delete(cache, im);
while (cache->lru_nodata) EINA_INLIST_FREE(cache->mmap_lru, im)
{ _evas_cache_image_entry_delete(cache, im);
im = (Image_Entry *)cache->lru_nodata; EINA_INLIST_FREE(cache->mmap_lru_nodata, im)
_evas_cache_image_entry_delete(cache, im); _evas_cache_image_entry_delete(cache, im);
}
/* This is mad, I am about to destroy image still alive, but we need to prevent leak. */ /* This is mad, I am about to destroy image still alive, but we need to prevent leak. */
while (cache->dirty) while (cache->dirty)
{ {
@ -569,8 +569,6 @@ evas_cache_image_shutdown(Evas_Cache_Image *cache)
delete_list = NULL; delete_list = NULL;
eina_hash_foreach(cache->activ, _evas_cache_image_free_cb, &delete_list); eina_hash_foreach(cache->activ, _evas_cache_image_free_cb, &delete_list);
eina_hash_foreach(cache->mmap_activ, _evas_cache_image_free_cb, &delete_list); eina_hash_foreach(cache->mmap_activ, _evas_cache_image_free_cb, &delete_list);
eina_hash_foreach(cache->inactiv, _evas_cache_image_free_cb, &delete_list);
eina_hash_foreach(cache->mmap_inactiv, _evas_cache_image_free_cb, &delete_list);
while (delete_list) while (delete_list)
{ {
_evas_cache_image_entry_delete(cache, eina_list_data_get(delete_list)); _evas_cache_image_entry_delete(cache, eina_list_data_get(delete_list));