From 24a1c444b02f090578ac34774264fdaa6d102dd0 Mon Sep 17 00:00:00 2001 From: "Carsten Haitzler (Rasterman)" Date: Thu, 14 Aug 2014 18:10:11 +0900 Subject: [PATCH] evas scalecache - fix thread deadlock posssibility there is a re-ordering of how locks are taken and this should cover that deadlock possibility. fixes CID 1106338 --- src/lib/evas/common/evas_image_scalecache.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/evas/common/evas_image_scalecache.c b/src/lib/evas/common/evas_image_scalecache.c index 1a8229f604..1accf2bf84 100644 --- a/src/lib/evas/common/evas_image_scalecache.c +++ b/src/lib/evas/common/evas_image_scalecache.c @@ -788,10 +788,11 @@ evas_common_rgba_image_scalecache_do_cbs(Image_Entry *ie, RGBA_Image *dst, { static RGBA_Draw_Context *ct = NULL; - SLKL(cache_lock); im->cache.orig_usage++; im->cache.usage_count = use_counter; im->cache.populate_count--; + SLKU(im->cache.lock); + SLKL(cache_lock); // pops++; if (!ct) { @@ -800,7 +801,6 @@ evas_common_rgba_image_scalecache_do_cbs(Image_Entry *ie, RGBA_Image *dst, ct = evas_common_draw_context_new(); evas_common_draw_context_set_render_op(ct, _EVAS_RENDER_COPY); } - SLKU(im->cache.lock); if (im->cache_entry.space == EVAS_COLORSPACE_ARGB8888) { #ifdef EVAS_CSERVE2