diff --git a/legacy/evas/src/lib/cache/evas_cache_image.c b/legacy/evas/src/lib/cache/evas_cache_image.c index 7d3a0032e1..b7af017c9c 100644 --- a/legacy/evas/src/lib/cache/evas_cache_image.c +++ b/legacy/evas/src/lib/cache/evas_cache_image.c @@ -254,6 +254,27 @@ _evas_cache_image_entry_new(Evas_Cache_Image *cache, return ie; } +static void +_evas_cache_image_entry_surface_alloc__locked(Evas_Cache_Image *cache, + Image_Entry *ie, + int wmin, + int hmin) +{ + if (ie->allocated.w == wmin && ie->allocated.h == hmin) + return ; + + if (cache->func.surface_alloc(ie, wmin, hmin)) + { + wmin = 0; + hmin = 0; + } + + ie->w = wmin; + ie->h = hmin; + ie->allocated.w = wmin; + ie->allocated.h = hmin; +} + static void _evas_cache_image_entry_surface_alloc(Evas_Cache_Image *cache, Image_Entry *ie, @@ -265,27 +286,14 @@ _evas_cache_image_entry_surface_alloc(Evas_Cache_Image *cache, wmin = w > 0 ? w : 1; hmin = h > 0 ? h : 1; - if (ie->allocated.w == wmin && ie->allocated.h == hmin) - return ; #ifdef BUILD_ASYNC_PRELOAD pthread_mutex_lock(&mutex_surface_alloc); #endif - - if (cache->func.surface_alloc(ie, wmin, hmin)) - { - wmin = 0; - hmin = 0; - } - + _evas_cache_image_entry_surface_alloc__locked(cache, ie, wmin, hmin); #ifdef BUILD_ASYNC_PRELOAD pthread_mutex_unlock(&mutex_surface_alloc); #endif - - ie->w = wmin; - ie->h = hmin; - ie->allocated.w = wmin; - ie->allocated.h = hmin; } #ifdef BUILD_ASYNC_PRELOAD