summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarsten Haitzler (Rasterman) <raster@rasterman.com>2017-04-10 10:40:52 +0900
committerChris Michael <cp.michael@samsung.com>2017-04-11 11:51:49 -0400
commitecf26e0ed8f07b18516360087b86ded028d34b1e (patch)
treeb8f67891a073f549298f0ba4b256b69a2128d619
parent7258a924913ef57244ac583745ac1967dd580ce6 (diff)
evas - async preload cancel fix - don't double delete/free
just match the ref with the drop anddon't also manually free the image as this leads to accessing of freed memory which is not a good thing. this should fix T5374 @fix
-rw-r--r--src/lib/evas/cache/evas_cache_image.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/src/lib/evas/cache/evas_cache_image.c b/src/lib/evas/cache/evas_cache_image.c
index ff958581cf..51b0bf1559 100644
--- a/src/lib/evas/cache/evas_cache_image.c
+++ b/src/lib/evas/cache/evas_cache_image.c
@@ -447,11 +447,10 @@ _evas_cache_image_async_cancel(void *data)
447 447
448 if ((ie->flags.delete_me) || (ie->flags.dirty)) 448 if ((ie->flags.delete_me) || (ie->flags.dirty))
449 { 449 {
450 ie->flags.delete_me = 0;
451 evas_cache_image_drop(ie);
452 SLKL(engine_lock); 450 SLKL(engine_lock);
453 _evas_cache_image_entry_delete(ie->cache, ie); 451 ie->flags.delete_me = 0;
454 SLKU(engine_lock); 452 SLKU(engine_lock);
453 evas_cache_image_drop(ie);
455 return; 454 return;
456 } 455 }
457 SLKL(ie->lock_task); 456 SLKL(ie->lock_task);