From f46a24ab32a72e13bef5b919cd676be1341ab803 Mon Sep 17 00:00:00 2001 From: Jean Guyomarc'h Date: Sat, 19 Mar 2016 12:22:51 +0100 Subject: [PATCH] edje_cc: fix misleading error 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 --- src/bin/edje/edje_cc_out.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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 } }