raster pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=704d58d658ed4424a886c127f3bbe83afde1f2a1

commit 704d58d658ed4424a886c127f3bbe83afde1f2a1
Author: Woochanlee <[email protected]>
Date:   Tue Jul 7 11:20:53 2020 +0100

    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
---
 src/lib/edje/edje_util.c | 22 ++++++++++++++--------
 1 file changed, 14 insertions(+), 8 deletions(-)

diff --git a/src/lib/edje/edje_util.c b/src/lib/edje/edje_util.c
index 4d9a9dc369..33d00488e5 100644
--- a/src/lib/edje/edje_util.c
+++ b/src/lib/edje/edje_util.c
@@ -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 *

-- 


Reply via email to