From: Woochanlee Date: Thu, 16 Jul 2020 10:37:10 +0000 (+0100) Subject: edje: Avoid string duplication when possible. X-Git-Tag: submit/tizen/20200719.223823~5 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=b318753d5913825d9d169ac36d83d99511fe3931;p=platform%2Fupstream%2Fefl.git edje: Avoid string duplication when possible. Summary: Most use case the part name dosen't contain the recursive name so we don't have to go through expensive eina_string_split operation. Test Plan: edje-suite (34/37 edje-suite OK 0.67 s) elementary-test app launching on enlightenment Reviewers: raster, smohanty, Hermet Subscribers: cedric, #reviewers, #committers Tags: #efl Differential Revision: https://phab.enlightenment.org/D12055 --- diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c index c1bbaf6..d9961d6 100644 --- a/src/lib/edje/edje_util.c +++ b/src/lib/edje/edje_util.c @@ -5838,17 +5838,23 @@ _edje_real_part_text_text_source_description_get(Edje_Real_Part *ep, Edje_Real_P Edje_Real_Part * _edje_real_part_recursive_get(Edje **ed, const char *part) { - Edje_Real_Part *rp; - char **path; + if (strchr(part, EDJE_PART_PATH_SEPARATOR)) + { + Edje_Real_Part *rp; + char **path; - path = eina_str_split(part, EDJE_PART_PATH_SEPARATOR_STRING, 0); - if (!path) return NULL; + path = eina_str_split(part, EDJE_PART_PATH_SEPARATOR_STRING, 0); + if (!path) return NULL; - rp = _edje_real_part_recursive_get_helper(ed, path); + rp = _edje_real_part_recursive_get_helper(ed, path); + + free(*path); + free(path); + + return rp; + } - free(*path); - free(path); - return rp; + return _edje_real_part_get(*ed, part); } Evas_Object *