aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Guyomarc'h <jean.guyomarch@gmail.com>2016-03-19 12:22:51 +0100
committerJean Guyomarc'h <jean.guyomarch@gmail.com>2016-03-19 12:22:51 +0100
commitf46a24ab32a72e13bef5b919cd676be1341ab803 (patch)
treeba02406f0a5cbf1004e324fcddb740513b9d7377
parentRevert "edje: seems like preloading is fixed and we can now run edje_cc in //" (diff)
downloadefl-devs/jayji/fixes.tar.gz
edje_cc: fix misleading errordevs/jayji/fixes
edje_cc tries several images paths when searching for an image. It stops its search only when the image was successfully loaded or all paths have been tested. If a load failed for some reason, but the file DOES exist, the relevant error, that contains the real reason of the failure will be overwriten by what is very likely to be "File Not Found" since another path has been tested, due to the failure of the previous one. In such case, the user received the "File Not Found" error, which is not the reason of the failure. @fix
-rw-r--r--src/bin/edje/edje_cc_out.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c
index 3a063babbe..62424ef962 100644
--- a/src/bin/edje/edje_cc_out.c
+++ b/src/bin/edje/edje_cc_out.c
@@ -1254,6 +1254,7 @@ data_write_images(Eet_File *ef, int *image_num)
Eina_List *ll;
char *s;
int load_err = EVAS_LOAD_ERROR_NONE;
+ int relevant_load_error = EVAS_LOAD_ERROR_DOES_NOT_EXIST;
Image_Write *iw;
img = &edje_file->image_dir->entries[i];
@@ -1304,6 +1305,8 @@ data_write_images(Eet_File *ef, int *image_num)
data_image_preload_done(iw, evas, im, NULL);
break;
}
+ else if (load_err != EVAS_LOAD_ERROR_DOES_NOT_EXIST)
+ relevant_load_error = load_err;
}
if (load_err != EVAS_LOAD_ERROR_NONE)
{
@@ -1323,7 +1326,11 @@ data_write_images(Eet_File *ef, int *image_num)
else
{
free(iw);
- error_and_abort_image_load_error(ef, img->entry, load_err);
+ error_and_abort_image_load_error(
+ ef, img->entry,
+ (relevant_load_error != EVAS_LOAD_ERROR_DOES_NOT_EXIST)
+ ? relevant_load_error
+ : load_err);
exit(1); // ensure static analysis tools know we exit
}
}