summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/lib/evas/cache/evas_cache_image.c46
1 files changed, 16 insertions, 30 deletions
diff --git a/src/lib/evas/cache/evas_cache_image.c b/src/lib/evas/cache/evas_cache_image.c
index 32cc83db8b..747fcf9c89 100644
--- a/src/lib/evas/cache/evas_cache_image.c
+++ b/src/lib/evas/cache/evas_cache_image.c
@@ -862,7 +862,6 @@ evas_cache_image_request(Evas_Cache_Image *cache, const char *file,
size_t key_length;
struct stat st;
Image_Timestamp tstamp;
- Eina_Bool skip = lo->skip_head;
Evas_Image_Load_Opts tlo;
if (!file)
@@ -885,7 +884,7 @@ evas_cache_image_request(Evas_Cache_Image *cache, const char *file,
size += key_length;
size += _evas_cache_image_loadopts_append(hkey + size, &lo);
tlo = *lo;
- tlo.skip_head = skip;
+ tlo.skip_head = lo->skip_head;
/* find image by key in active hash */
SLKL(engine_lock);
@@ -895,15 +894,13 @@ evas_cache_image_request(Evas_Cache_Image *cache, const char *file,
int ok = 1;
stat_done = 1;
- if (!skip)
+ if (stat(file, &st) < 0)
{
- if (stat(file, &st) < 0)
- {
- stat_failed = 1;
- ok = 0;
- }
- else if (!_timestamp_compare(&(im->tstamp), &st)) ok = 0;
+ stat_failed = 1;
+ ok = 0;
}
+ else if (!_timestamp_compare(&(im->tstamp), &st)) ok = 0;
+
if (ok) goto on_ok;
/* image we found doesn't match what's on disk (stat info wise)
* so dirty the active cache entry so we never find it again. this
@@ -925,20 +922,17 @@ evas_cache_image_request(Evas_Cache_Image *cache, const char *file,
{
int ok = 1;
- if (!skip)
+ if (!stat_done)
{
- if (!stat_done)
+ stat_done = 1;
+ if (stat(file, &st) < 0)
{
- stat_done = 1;
- if (stat(file, &st) < 0)
- {
- stat_failed = 1;
+ stat_failed = 1;
ok = 0;
- }
- else if (!_timestamp_compare(&(im->tstamp), &st)) ok = 0;
}
else if (!_timestamp_compare(&(im->tstamp), &st)) ok = 0;
}
+ else if (!_timestamp_compare(&(im->tstamp), &st)) ok = 0;
if (ok)
{
@@ -963,21 +957,13 @@ evas_cache_image_request(Evas_Cache_Image *cache, const char *file,
}
if (stat_failed) goto on_stat_error;
- if (!skip)
- {
- if (!stat_done)
- {
- if (stat(file, &st) < 0) goto on_stat_error;
- }
- _timestamp_build(&tstamp, &st);
- im = _evas_cache_image_entry_new(cache, hkey, &tstamp, NULL,
- file, key, &tlo, error);
- }
- else
+ if (!stat_done)
{
- im = _evas_cache_image_entry_new(cache, hkey, NULL, NULL,
- file, key, &tlo, error);
+ if (stat(file, &st) < 0) goto on_stat_error;
}
+ _timestamp_build(&tstamp, &st);
+ im = _evas_cache_image_entry_new(cache, hkey, &tstamp, NULL,
+ file, key, &tlo, error);
if (!im) goto on_stat_error;
if (cache->func.debug) cache->func.debug("request", im);