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.

Reviewers: smohanty, cedric, Hermet, raster

Subscribers: cedric, #reviewers, #committers

Tags: #efl

Differential Revision: https://phab.enlightenment.org/D12045
This commit is contained in:
Woochanlee 2020-07-07 11:20:53 +01:00 committed by Carsten Haitzler (Rasterman)
parent cac95313c7
commit 704d58d658
1 changed files with 14 additions and 8 deletions

View File

@ -5602,17 +5602,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 ((*ed)->collection && (*ed)->collection->alias)
{
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 *