From 02a2f7215a1ba47800ef25df54639d712dd40a3e Mon Sep 17 00:00:00 2001 From: barbieri Date: Fri, 23 Jan 2009 00:09:10 +0000 Subject: [PATCH] Remove all images pending preload before cache shuts down. git-svn-id: svn+ssh://svn.enlightenment.org/var/svn/e/trunk/evas@38703 7cbeb6ba-43b4-40fd-8cce-4c39aea84d33 --- src/lib/cache/evas_cache_image.c | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/src/lib/cache/evas_cache_image.c b/src/lib/cache/evas_cache_image.c index d6d4eee..afc8113 100644 --- a/src/lib/cache/evas_cache_image.c +++ b/src/lib/cache/evas_cache_image.c @@ -501,6 +501,31 @@ evas_cache_image_shutdown(Evas_Cache_Image *cache) if (cache->references > 0) return ; +#ifdef BUILD_ASYNC_PRELOAD + pthread_mutex_lock(&mutex); + if (running) + { + while (preload) + { + Evas_Cache_Preload *tmp = (Evas_Cache_Preload *)preload; + Image_Entry *ie = tmp->ie; + + while (ie->targets) + { + Evas_Cache_Target *t = ie->targets; + ie->targets = (Evas_Cache_Target *) + eina_inlist_remove(EINA_INLIST_GET(ie->targets), + EINA_INLIST_GET(ie->targets)); + free(t); + } + + preload = eina_inlist_remove(preload, preload); + free(tmp); + } + } + pthread_mutex_unlock(&mutex); +#endif + while (cache->lru) { im = (Image_Entry *) cache->lru; -- 2.7.4