From 2cdd09df5bd60a36638891ed6df7d77024305a00 Mon Sep 17 00:00:00 2001 From: Yeongjong Lee Date: Thu, 23 Jul 2020 19:35:12 +0900 Subject: [PATCH] edje_cc: fix crash on image data initialization Summary: Since commit a8538bacce1457a91e28b39a6417eaadb4744b50 a crash occurs when Images.Set.Image is unused. To avoid a crash, this patch skips setting image data for unused image sets. Test Plan: $edje_cc basic.edc basic.edc ``` collections { set { name: "bubble"; image { image: "bubble.png" COMP; } } } ``` Reviewers: raster Subscribers: cedric, #reviewers, #committers, eagleeye Tags: #efl Differential Revision: https://phab.enlightenment.org/D12063 Change-Id: Ibcb14df831f0a6eb51d69267b379f6480256969f --- src/bin/edje/edje_cc_out.c | 8 +++++++- src/lib/edje/edje_private.h | 3 +++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/bin/edje/edje_cc_out.c b/src/bin/edje/edje_cc_out.c index 87688f3..f3b80db 100644 --- a/src/bin/edje/edje_cc_out.c +++ b/src/bin/edje/edje_cc_out.c @@ -1495,7 +1495,10 @@ data_image_sets_init(void) Eina_List *ll = NULL; set = edje_file->image_dir->sets + i; - if (!set->entries) continue; + //TIZEN_ONLY(20200723): fix crash on image data initialization + //if (!set->entries) continue; + if (!set->entries || set->unused) continue; + // EINA_LIST_FOREACH(set->entries, ll, set_entry) { img = &edje_file->image_dir->entries[set_entry->id]; @@ -4087,6 +4090,9 @@ free_group: if (set->name && eina_hash_find(images_in_use, set->name)) continue; + //TIZEN_ONLY(20200723): fix crash on image data initialization + set->unused = EINA_TRUE; + // printf("Warning: Image set '%s' not used\n", set->name); EINA_LIST_FOREACH(set->entries, l, set_e) { diff --git a/src/lib/edje/edje_private.h b/src/lib/edje/edje_private.h index a99d346..b0d6c3f 100644 --- a/src/lib/edje/edje_private.h +++ b/src/lib/edje/edje_private.h @@ -701,6 +701,9 @@ struct _Edje_Image_Directory_Set Eina_List *entries; int id; + //TIZEN_ONLY(20200723): fix crash on image data initialization + Eina_Bool unused : 1; + // }; struct _Edje_Image_Directory_Set_Entry -- 2.7.4