From 8f95b17f39cb87cb4627150b0761fc95376bd026 Mon Sep 17 00:00:00 2001 From: Daniel Hirt Date: Fri, 22 Jun 2018 12:46:40 +0300 Subject: [PATCH] Edje: recalc edje before fetching the real part Summary: There are many calls to `_edje_real_part_recursive_get`. Though, it is not guaranteed that the Edje object had instantiated all of the real parts. This change makes edje to always recalc before retrieving the real part. The D6364 patch raised a good point, but presented a local fix, where it seems that a global fix such as this is needed, instead. The local fix is removed in favor of this. Test suite still passes. ref T7057 @fix Test Plan: See T7057 Reviewers: devilhorns Subscribers: cedric, zmike, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D6365 --- src/lib/edje/edje_util.c | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index 98d6c78023..2de6354a6c 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -2052,9 +2052,6 @@ _edje_efl_text_text_get(const Eo *obj EINA_UNUSED, Edje *ed, const char *part, if ((!ed) || (!part)) return NULL; - /* Need to recalc before providing the object. */ - _edje_recalc_do(ed); - rp = _edje_real_part_recursive_get(&ed, part); if (!rp) return NULL; if ((rp->type != EDJE_RP_TYPE_TEXT) || @@ -5221,6 +5218,8 @@ _edje_real_part_recursive_get(Edje **ed, const char *part) path = eina_str_split(part, EDJE_PART_PATH_SEPARATOR_STRING, 0); if (!path) return NULL; + _edje_recalc_do(*ed); + rp = _edje_real_part_recursive_get_helper(ed, path); free(*path);