Image_Entry *im;
Evas_Image_Load_Opts prevent = { 0, 0, 0, 0, { 0, 0, 0, 0 } };
size_t size;
- int stat_done = 0;
+ int stat_done = 0, stat_failed = 0;
size_t file_length;
size_t key_length;
struct stat st;
int ok = 1;
stat_done = 1;
- if (stat(file, &st) < 0) goto on_stat_error;
+ if (stat(file, &st) < 0)
{
- 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;
_evas_cache_image_remove_activ(cache, im);
_evas_cache_image_make_dirty(cache, im);
+ im = NULL;
}
#ifdef EVAS_FRAME_QUEUING
if (!stat_done)
{
stat_done = 1;
- if (stat(file, &st) < 0) goto on_stat_error;
- if (!_timestamp_compare(&(im->tstamp), &st)) ok = 0;
+ if (stat(file, &st) < 0)
+ {
+ 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)
{
_evas_cache_image_make_activ(cache, im, im->cache_key);
goto on_ok;
}
-
- _evas_cache_image_entry_delete(cache, im);
+ _evas_cache_image_make_dirty(cache, im);
+ im = NULL;
}
+ if (stat_failed) goto on_stat_error;
if (!stat_done)
{