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
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 *