failure case more efficient

SVN revision: 58683
This commit is contained in:
Carsten Haitzler 2011-04-15 09:32:28 +00:00
parent 4e5231b3f8
commit 7a2f6cd6d6
1 changed files with 13 additions and 4 deletions

View File

@ -777,7 +777,7 @@ evas_cache_image_request(Evas_Cache_Image *cache, const char *file, const char *
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;
@ -878,7 +878,11 @@ evas_cache_image_request(Evas_Cache_Image *cache, const char *file, const char *
int ok = 1;
stat_done = 1;
if (stat(file, &st) < 0) ok = 0;
if (stat(file, &st) < 0)
{
stat_failed = 1;
ok = 0;
}
else if (!_timestamp_compare(&(im->tstamp), &st)) ok = 0;
if (ok) goto on_ok;
@ -901,7 +905,11 @@ evas_cache_image_request(Evas_Cache_Image *cache, const char *file, const char *
if (!stat_done)
{
stat_done = 1;
if (stat(file, &st) < 0) 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;
@ -915,7 +923,8 @@ evas_cache_image_request(Evas_Cache_Image *cache, const char *file, const char *
_evas_cache_image_make_dirty(cache, im);
im = NULL;
}
if (stat_failed) goto on_stat_error;
if (!stat_done)
{
if (stat(file, &st) < 0) goto on_stat_error;