cedric pushed a commit to branch master.

commit ddce974800b3611cde5c7560d72adc4781186e49
Author: Cedric Bail <[email protected]>
Date:   Thu Sep 5 17:16:42 2013 +0900

    elementary: use zero allocation walk.
---
 src/lib/elm_widget.c | 59 +++++++++++++++++++++++++---------------------------
 1 file changed, 28 insertions(+), 31 deletions(-)

diff --git a/src/lib/elm_widget.c b/src/lib/elm_widget.c
index 9bcec72..840b027 100644
--- a/src/lib/elm_widget.c
+++ b/src/lib/elm_widget.c
@@ -372,31 +372,31 @@ _elm_widget_smart_resize(Eo *obj EINA_UNUSED, void *_pd, 
va_list *list)
 static void
 _elm_widget_smart_show(Eo *obj, void *_pd EINA_UNUSED, va_list *params_list 
EINA_UNUSED)
 {
-   Eina_List *list;
+   Eina_Iterator *it;
    Evas_Object *o;
 
-   if ((list = evas_object_smart_members_get(obj)))
+   it = evas_object_smart_iterator_new(obj);
+   EINA_ITERATOR_FOREACH(it, o)
      {
-        EINA_LIST_FREE(list, o)
-          {
-             if (evas_object_data_get(o, "_elm_leaveme")) continue;
-             evas_object_show(o);
-          }
+       if (evas_object_data_get(o, "_elm_leaveme")) continue;
+       evas_object_show(o);
      }
+   eina_iterator_free(it);
 }
 
 static void
 _elm_widget_smart_hide(Eo *obj, void *_pd EINA_UNUSED, va_list *params_list 
EINA_UNUSED)
 {
-   Eina_List *list;
+   Eina_Iterator *it;
    Evas_Object *o;
 
-   list = evas_object_smart_members_get(obj);
-   EINA_LIST_FREE(list, o)
+   it = evas_object_smart_iterator_new(obj);
+   EINA_ITERATOR_FOREACH(it, o)
      {
         if (evas_object_data_get(o, "_elm_leaveme")) continue;
         evas_object_hide(o);
      }
+   eina_iterator_free(it);
 }
 
 static void
@@ -406,50 +406,47 @@ _elm_widget_smart_color_set(Eo *obj, void *_pd 
EINA_UNUSED, va_list *params_list
    int g = va_arg(*params_list, int);
    int b = va_arg(*params_list, int);
    int a = va_arg(*params_list, int);
-   Eina_List *list;
+   Eina_Iterator *it;
    Evas_Object *o;
 
-   if ((list = evas_object_smart_members_get(obj)))
+   it = evas_object_smart_iterator_new(obj);
+   EINA_ITERATOR_FOREACH(it, o)
      {
-        EINA_LIST_FREE(list, o)
-          {
-             if (evas_object_data_get(o, "_elm_leaveme")) continue;
-             evas_object_color_set(o, r, g, b, a);
-          }
+       if (evas_object_data_get(o, "_elm_leaveme")) continue;
+       evas_object_color_set(o, r, g, b, a);
      }
+   eina_iterator_free(it);
 }
 
 static void
 _elm_widget_smart_clip_set(Eo *obj, void *_pd EINA_UNUSED, va_list 
*params_list)
 {
    Evas_Object *clip = va_arg(*params_list, Evas_Object *);
-   Eina_List *list;
+   Eina_Iterator *it;
    Evas_Object *o;
 
-   if ((list = evas_object_smart_members_get(obj)))
+   it = evas_object_smart_iterator_new(obj);
+   EINA_ITERATOR_FOREACH(it, o)
      {
-        EINA_LIST_FREE(list, o)
-          {
-             if (evas_object_data_get(o, "_elm_leaveme")) continue;
-             evas_object_clip_set(o, clip);
-          }
+       if (evas_object_data_get(o, "_elm_leaveme")) continue;
+       evas_object_clip_set(o, clip);
      }
+   eina_iterator_free(it);
 }
 
 static void
 _elm_widget_smart_clip_unset(Eo *obj, void *_pd EINA_UNUSED, va_list 
*params_list EINA_UNUSED)
 {
-   Eina_List *list;
+   Eina_Iterator *it;
    Evas_Object *o;
 
-   if ((list = evas_object_smart_members_get(obj)))
+   it = evas_object_smart_iterator_new(obj);
+   EINA_ITERATOR_FOREACH(it, o)
      {
-        EINA_LIST_FREE(list, o)
-          {
-             if (evas_object_data_get(o, "_elm_leaveme")) continue;
-             evas_object_clip_unset(o);
-          }
+       if (evas_object_data_get(o, "_elm_leaveme")) continue;
+       evas_object_clip_unset(o);
      }
+   eina_iterator_free(it);
 }
 
 static void

-- 

------------------------------------------------------------------------------
Learn the latest--Visual Studio 2012, SharePoint 2013, SQL 2012, more!
Discover the easy way to master current and previous Microsoft technologies
and advance your career. Get an incredible 1,500+ hours of step-by-step
tutorial videos with LearnDevNow. Subscribe today and save!
http://pubads.g.doubleclick.net/gampad/clk?id=58041391&iu=/4140/ostg.clktrk

Reply via email to