diff --git a/legacy/edje/src/lib/Edje.h b/legacy/edje/src/lib/Edje.h index 57c1c7160d..9a46d7b58f 100644 --- a/legacy/edje/src/lib/Edje.h +++ b/legacy/edje/src/lib/Edje.h @@ -130,7 +130,8 @@ enum EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED = 4, EDJE_LOAD_ERROR_CORRUPT_FILE = 5, EDJE_LOAD_ERROR_UNKNOWN_FORMAT = 6, - EDJE_LOAD_ERROR_INCOMPATIBLE_FILE = 7 + EDJE_LOAD_ERROR_INCOMPATIBLE_FILE = 7, + EDJE_LOAD_ERROR_UNKNOWN_COLLECTION = 8 }; #ifdef __cplusplus diff --git a/legacy/edje/src/lib/edje_cache.c b/legacy/edje/src/lib/edje_cache.c index ff17eeb5b5..ddab078d8a 100644 --- a/legacy/edje/src/lib/edje_cache.c +++ b/legacy/edje/src/lib/edje_cache.c @@ -110,8 +110,12 @@ _edje_file_open(char *file, char *coll, int *error_ret, Edje_Part_Collection **e } edc = _edje_file_coll_open(edf, ef, coll); + if (!edc) + { + *error_ret = EDJE_LOAD_ERROR_UNKNOWN_COLLECTION; + } if (edc_ret) *edc_ret = edc; - + eet_close(ef); return edf; } @@ -176,6 +180,10 @@ _edje_cache_file_coll_open(char *file, char *coll, int *error_ret, Edje_Part_Col if (!edc) { edc = _edje_file_coll_open(edf, NULL, coll); + if (!edc) + { + *error_ret = EDJE_LOAD_ERROR_UNKNOWN_COLLECTION; + } } if (edc_ret) *edc_ret = edc; diff --git a/legacy/edje/src/lib/edje_load.c b/legacy/edje/src/lib/edje_load.c index c1cd5907ec..59fc101559 100644 --- a/legacy/edje/src/lib/edje_load.c +++ b/legacy/edje/src/lib/edje_load.c @@ -134,7 +134,11 @@ edje_object_file_set(Evas_Object *obj, const char *file, const char *part) ep = l->data; rp = calloc(1, sizeof(Edje_Real_Part)); - if (!rp) return 0; + if (!rp) + { + ed->load_error = EDJE_LOAD_ERROR_RESOURCE_ALLOCATION_FAILED; + return 0; + } rp->part = ep; ed->parts = evas_list_append(ed->parts, rp); rp->param1.description = ep->default_desc;