Yo

On Thu, Nov 13, 2014 at 2:07 PM, Daniel Zaoui <daniel.za...@samsung.com>
wrote:

> I know some weird people like branches but I just HATE THAT!!! And you

know, I love sharing my work, so only one mail would have looked so
> cheap (and the french side of Cedric would have laughed at me (ask him)
> :-))
>

I don't have blind faith in the branch but in this case it is super useful.
It is a sub grouping of your identical job. So one can easily skip the
internal commits in the branch when browsing the history.

Also you would get all the emails even you use a branch. So no worries.
By the way, this is not critical at all. I am just kindly suggesting so
don't take it serious.

Thanks.

Daniel Juyung Seo (SeoZ, D1)


>
> On 11/12/14 16:38, Daniel Juyung Seo wrote:
> > Thanks for the big change!
> > Now I will review the code again.
> >
> > By the way, using branch would be better in this case.
> > https://phab.enlightenment.org/w/git_practices/#merging-change-back-into
> >
> > Thanks.
> >
> > Daniel Juyung Seo (SeoZ, D1)
> >
> >
> > On Wed, Nov 12, 2014 at 8:55 PM, Daniel Zaoui <daniel.za...@samsung.com>
> > wrote:
> >
> >> jackdanielz pushed a commit to branch master.
> >>
> >>
> >>
> http://git.enlightenment.org/core/elementary.git/commit/?id=4c0eba6cac277617476822912dc6675c95eae79c
> >>
> >> commit 4c0eba6cac277617476822912dc6675c95eae79c
> >> Author: Daniel Zaoui <daniel.za...@samsung.com>
> >> Date:   Wed Sep 17 16:44:05 2014 +0300
> >>
> >>     Object Items: replace most of del_pre functions with destructor.
> >>
> >>     This change is not simple because Elementary has not been built from
> >> the
> >>     first day to work with Eo. Code had to be adapted to fit the new
> >> design.
> >>
> >>     The del_pre that have not been replaced yet can return FALSE and
> >>     prevent deletion. For these classes, code modification has to be
> deeper
> >>     and will be done later.
> >> ---
> >>  src/lib/elc_ctxpopup.c               |  29 +++++-----
> >>  src/lib/elc_hoversel.c               |  12 ++--
> >>  src/lib/elc_multibuttonentry.c       |   8 +--
> >>  src/lib/elc_naviframe.c              |  15 +++--
> >>  src/lib/elc_popup.c                  |   8 +--
> >>  src/lib/elm_ctxpopup_item.eo         |   2 +-
> >>  src/lib/elm_diskselector.c           |  87 ++++++++++++++++------------
> >>  src/lib/elm_diskselector_item.eo     |   2 +-
> >>  src/lib/elm_flipselector.c           | 109
> >> ++++++-----------------------------
> >>  src/lib/elm_flipselector_item.eo     |   2 +-
> >>  src/lib/elm_hoversel_item.eo         |   2 +-
> >>  src/lib/elm_index.c                  |   6 +-
> >>  src/lib/elm_index_item.eo            |   2 +-
> >>  src/lib/elm_list.c                   |   1 +
> >>  src/lib/elm_menu.c                   |  12 ++--
> >>  src/lib/elm_menu_item.eo             |   2 +-
> >>  src/lib/elm_multibuttonentry_item.eo |   2 +-
> >>  src/lib/elm_naviframe_item.eo        |   2 +-
> >>  src/lib/elm_popup_item.eo            |   2 +-
> >>  src/lib/elm_segment_control.c        |   8 +--
> >>  src/lib/elm_segment_control_item.eo  |   2 +-
> >>  src/lib/elm_slideshow.c              |   8 +--
> >>  src/lib/elm_slideshow_item.eo        |   2 +-
> >>  src/lib/elm_toolbar.c                |   6 +-
> >>  src/lib/elm_toolbar_item.eo          |   2 +-
> >>  src/lib/elm_widget_flipselector.h    |   1 -
> >>  src/lib/elm_widget_naviframe.h       |   2 -
> >>  27 files changed, 130 insertions(+), 206 deletions(-)
> >>
> >> diff --git a/src/lib/elc_ctxpopup.c b/src/lib/elc_ctxpopup.c
> >> index e3b7140..cf2758d 100644
> >> --- a/src/lib/elc_ctxpopup.c
> >> +++ b/src/lib/elc_ctxpopup.c
> >> @@ -1030,9 +1030,9 @@ _list_del(Elm_Ctxpopup_Data *sd)
> >>     ELM_SAFE_FREE(sd->list, evas_object_del);
> >>  }
> >>
> >> -EOLIAN static Eina_Bool
> >> -_elm_ctxpopup_item_elm_widget_item_del_pre(Eo *eo_ctxpopup_it,
> >> -                                           Elm_Ctxpopup_Item_Data
> >> *ctxpopup_it)
> >> +EOLIAN static void
> >> +_elm_ctxpopup_item_eo_base_destructor(Eo *eo_ctxpopup_it,
> >> +                                      Elm_Ctxpopup_Item_Data
> *ctxpopup_it)
> >>  {
> >>     Evas_Object *list;
> >>
> >> @@ -1042,22 +1042,19 @@ _elm_ctxpopup_item_elm_widget_item_del_pre(Eo
> >> *eo_ctxpopup_it,
> >>
> >>     list = elm_object_item_widget_get(ctxpopup_it->list_item);
> >>
> >> -   if (eina_list_count(elm_list_items_get(list)) < 2)
> >> +   if (ctxpopup_it->list_item)
> >> +      eo_unref(ctxpopup_it->list_item);
> >> +   sd->items = eina_list_remove(sd->items, eo_ctxpopup_it);
> >> +   if (list && eina_list_count(elm_list_items_get(list)) < 2)
> >>       {
> >> -        if (ctxpopup_it->list_item)
> >> -          elm_object_item_del(ctxpopup_it->list_item);
> >> -        sd->items = eina_list_remove(sd->items, eo_ctxpopup_it);
> >>          evas_object_hide(WIDGET(ctxpopup_it));
> >> -
> >> -        return EINA_TRUE;
> >> +     }
> >> +   else
> >> +     {
> >> +        if (sd->list_visible)
> elm_layout_sizing_eval(WIDGET(ctxpopup_it));
> >>       }
> >>
> >> -   if (ctxpopup_it->list_item)
> >> -     elm_object_item_del(ctxpopup_it->list_item);
> >> -   sd->items = eina_list_remove(sd->items, eo_ctxpopup_it);
> >> -   if (sd->list_visible) elm_layout_sizing_eval(WIDGET(ctxpopup_it));
> >> -
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_ctxpopup_it, ELM_CTXPOPUP_ITEM_CLASS,
> eo_destructor());
> >>  }
> >>
> >>  EOLIAN static Eina_Bool
> >> @@ -1266,6 +1263,7 @@ _elm_ctxpopup_item_append(Eo *obj,
> Elm_Ctxpopup_Data
> >> *sd, const char *label, Eva
> >>
> >>     item->list_item =
> >>       elm_list_item_append(sd->list, label, icon, NULL, _item_wrap_cb,
> >> item);
> >> +   eo_ref(item->list_item);
> >>     sd->items = eina_list_append(sd->items, eo_item);
> >>
> >>     if (sd->visible) elm_layout_sizing_eval(obj);
> >> @@ -1359,6 +1357,7 @@ _elm_ctxpopup_item_prepend(Eo *obj,
> >> Elm_Ctxpopup_Data *sd, const char *label, Ev
> >>
> >>     item->list_item =
> >>       elm_list_item_prepend(sd->list, label, icon, NULL, _item_wrap_cb,
> >> item);
> >> +   eo_ref(item->list_item);
> >>     sd->items = eina_list_prepend(sd->items, eo_item);
> >>
> >>     if (sd->visible) elm_layout_sizing_eval(obj);
> >> diff --git a/src/lib/elc_hoversel.c b/src/lib/elc_hoversel.c
> >> index 7f80fea..f560261 100644
> >> --- a/src/lib/elc_hoversel.c
> >> +++ b/src/lib/elc_hoversel.c
> >> @@ -269,10 +269,10 @@ _elm_hoversel_item_elm_widget_item_style_get(Eo
> >> *eo_it EINA_UNUSED,
> >>     return elm_object_style_get(VIEW(it));
> >>  }
> >>
> >> -EOLIAN static Eina_Bool
> >> -_elm_hoversel_item_elm_widget_item_del_pre(Eo *eo_item EINA_UNUSED,
> >> Elm_Hoversel_Item_Data *item)
> >> +EOLIAN static void
> >> +_elm_hoversel_item_eo_base_destructor(Eo *eo_item,
> Elm_Hoversel_Item_Data
> >> *item)
> >>  {
> >> -   ELM_HOVERSEL_DATA_GET_OR_RETURN_VAL(WIDGET(item), sd, EINA_FALSE);
> >> +   ELM_HOVERSEL_DATA_GET_OR_RETURN(WIDGET(item), sd);
> >>
> >>     elm_hoversel_hover_end(WIDGET(item));
> >>     sd->items = eina_list_remove(sd->items, eo_item);
> >> @@ -280,7 +280,7 @@ _elm_hoversel_item_elm_widget_item_del_pre(Eo
> *eo_item
> >> EINA_UNUSED, Elm_Hoversel
> >>     eina_stringshare_del(item->icon_file);
> >>     eina_stringshare_del(item->icon_group);
> >>
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_item, ELM_HOVERSEL_ITEM_CLASS, eo_destructor());
> >>  }
> >>
> >>  EOLIAN static void
> >> @@ -304,10 +304,6 @@ _elm_hoversel_evas_object_smart_del(Eo *obj,
> >> Elm_Hoversel_Data *sd)
> >>
> >>     EINA_LIST_FREE(sd->items, eo_item)
> >>       {
> >> -        ELM_HOVERSEL_ITEM_DATA_GET(eo_item, item);
> >> -        eina_stringshare_del(item->label);
> >> -        eina_stringshare_del(item->icon_file);
> >> -        eina_stringshare_del(item->icon_group);
> >>          eo_del(eo_item);
> >>       }
> >>     elm_hoversel_hover_parent_set(obj, NULL);
> >> diff --git a/src/lib/elc_multibuttonentry.c
> >> b/src/lib/elc_multibuttonentry.c
> >> index a69adbd..6d1703b 100644
> >> --- a/src/lib/elc_multibuttonentry.c
> >> +++ b/src/lib/elc_multibuttonentry.c
> >> @@ -586,13 +586,13 @@
> >> _elm_multibuttonentry_item_elm_widget_item_part_text_get(Eo *eo_item
> >> EINA_UNUSED
> >>     return edje_object_part_text_get(item->button, src_part);
> >>  }
> >>
> >> -EOLIAN static Eina_Bool
> >> -_elm_multibuttonentry_item_elm_widget_item_del_pre(Eo *eo_it
> EINA_UNUSED,
> >> -
> >>  Elm_Multibuttonentry_Item_Data *it EINA_UNUSED)
> >> +EOLIAN static void
> >> +_elm_multibuttonentry_item_eo_base_destructor(Eo *eo_it,
> >> +
> >> Elm_Multibuttonentry_Item_Data *it)
> >>  {
> >>     _button_item_del(it);
> >>
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_it, ELM_MULTIBUTTONENTRY_ITEM_CLASS,
> eo_destructor());
> >>  }
> >>
> >>  static void
> >> diff --git a/src/lib/elc_naviframe.c b/src/lib/elc_naviframe.c
> >> index 2b4840b..abd6cdf 100644
> >> --- a/src/lib/elc_naviframe.c
> >> +++ b/src/lib/elc_naviframe.c
> >> @@ -192,7 +192,7 @@ _item_free(Elm_Naviframe_Item_Data *it)
> >>          if ((sd->preserve) && (!sd->on_deletion))
> >>            {
> >>               /* so that elm does not delete the contents with the
> item's
> >> -              * view after the del_pre_hook */
> >> +              * view after the destructor */
> >>               elm_object_part_content_unset(VIEW(it), CONTENT_PART);
> >>               evas_object_event_callback_del
> >>                  (it->content, EVAS_CALLBACK_DEL, _item_content_del_cb);
> >> @@ -527,8 +527,8 @@ _elm_naviframe_item_elm_widget_item_part_text_get(Eo
> >> *nit EINA_UNUSED,
> >>     return elm_object_part_text_get(VIEW(it), buf);
> >>  }
> >>
> >> -EOLIAN static Eina_Bool
> >> -_elm_naviframe_item_elm_widget_item_del_pre(Eo *eo_item,
> >> Elm_Naviframe_Item_Data *it)
> >> +EOLIAN static void
> >> +_elm_naviframe_item_eo_base_destructor(Eo *eo_item,
> >> Elm_Naviframe_Item_Data *it)
> >>  {
> >>     Elm_Naviframe_Item_Data *nit = it, *prev_it = NULL;
> >>     Eina_Bool top;
> >> @@ -536,7 +536,6 @@ _elm_naviframe_item_elm_widget_item_del_pre(Eo
> >> *eo_item, Elm_Naviframe_Item_Data
> >>     ELM_NAVIFRAME_DATA_GET(WIDGET(nit), sd);
> >>
> >>     nit->delete_me = EINA_TRUE;
> >> -   if (nit->ref > 0) return EINA_FALSE;
> >>
> >>     ecore_animator_del(nit->animator);
> >>
> >> @@ -569,7 +568,7 @@ _elm_naviframe_item_elm_widget_item_del_pre(Eo
> >> *eo_item, Elm_Naviframe_Item_Data
> >>  end:
> >>     _item_free(nit);
> >>
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_item, ELM_NAVIFRAME_ITEM_CLASS, eo_destructor());
> >>  }
> >>
> >>  static void
> >> @@ -1664,10 +1663,10 @@ _elm_naviframe_item_pop(Eo *obj,
> >> Elm_Naviframe_Data *sd)
> >>     evas_object_ref(obj);
> >>     if (it->pop_cb)
> >>       {
> >> -        it->ref++;
> >> +        eo_ref(eo_item);
> >>          if (!it->pop_cb(it->pop_data, eo_item))
> >>            {
> >> -             it->ref--;
> >> +             eo_unref(eo_item);
> >>               if (it->delete_me)
> >>                 eo_do(eo_item, elm_wdg_item_del());
> >>               else
> >> @@ -1675,7 +1674,7 @@ _elm_naviframe_item_pop(Eo *obj,
> Elm_Naviframe_Data
> >> *sd)
> >>               evas_object_unref(obj);
> >>               return NULL;
> >>            }
> >> -        it->ref--;
> >> +        eo_unref(eo_item);
> >>       }
> >>     evas_object_unref(obj);
> >>
> >> diff --git a/src/lib/elc_popup.c b/src/lib/elc_popup.c
> >> index 2db91aa..52f7209 100644
> >> --- a/src/lib/elc_popup.c
> >> +++ b/src/lib/elc_popup.c
> >> @@ -766,10 +766,10 @@ _elm_popup_item_elm_widget_item_disable(Eo *eo_it,
> >> Elm_Popup_Item_Data *it)
> >>       elm_layout_signal_emit(VIEW(it), "elm,state,item,enabled", "elm");
> >>  }
> >>
> >> -EOLIAN static Eina_Bool
> >> -_elm_popup_item_elm_widget_item_del_pre(Eo *eo_it EINA_UNUSED,
> >> Elm_Popup_Item_Data *it)
> >> +EOLIAN static void
> >> +_elm_popup_item_eo_base_destructor(Eo *eo_it, Elm_Popup_Item_Data *it)
> >>  {
> >> -   ELM_POPUP_ITEM_CHECK_OR_RETURN(it, EINA_FALSE);
> >> +   ELM_POPUP_ITEM_CHECK_OR_RETURN(it);
> >>     ELM_POPUP_DATA_GET(WIDGET(it), sd);
> >>
> >>     evas_object_del(it->icon);
> >> @@ -780,7 +780,7 @@ _elm_popup_item_elm_widget_item_del_pre(Eo *eo_it
> >> EINA_UNUSED, Elm_Popup_Item_Da
> >>          sd->items = NULL;
> >>          _list_del(sd);
> >>       }
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_it, ELM_POPUP_ITEM_CLASS, eo_destructor());
> >>  }
> >>
> >>  EOLIAN static void
> >> diff --git a/src/lib/elm_ctxpopup_item.eo b/src/lib/elm_ctxpopup_item.eo
> >> index 957cbbc..05b036f 100644
> >> --- a/src/lib/elm_ctxpopup_item.eo
> >> +++ b/src/lib/elm_ctxpopup_item.eo
> >> @@ -47,7 +47,7 @@ class Elm_Ctxpopup_Item(Elm_Widget_Item)
> >>     }
> >>     implements {
> >>          Eo.Base.constructor;
> >> -        Elm_Widget_Item.del_pre;
> >> +        Eo.Base.destructor;
> >>          Elm_Widget_Item.disable;
> >>          Elm_Widget_Item.signal_emit;
> >>          Elm_Widget_Item.part_text.get;
> >> diff --git a/src/lib/elm_diskselector.c b/src/lib/elm_diskselector.c
> >> index 45d4b39..3768845 100644
> >> --- a/src/lib/elm_diskselector.c
> >> +++ b/src/lib/elm_diskselector.c
> >> @@ -343,8 +343,8 @@ _sizing_eval(Evas_Object *obj)
> >>     _resize_cb(NULL, NULL, obj, NULL);
> >>  }
> >>
> >> -EOLIAN static Eina_Bool
> >> -_elm_diskselector_item_elm_widget_item_del_pre(Eo *eo_it EINA_UNUSED,
> >> Elm_Diskselector_Item_Data *it)
> >> +EOLIAN static void
> >> +_elm_diskselector_item_eo_base_destructor(Eo *eo_it,
> >> Elm_Diskselector_Item_Data *it)
> >>  {
> >>     Elm_Diskselector_Item_Data *item2, *dit;
> >>     Eina_List *l;
> >> @@ -360,6 +360,8 @@ _elm_diskselector_item_elm_widget_item_del_pre(Eo
> >> *eo_it EINA_UNUSED, Elm_Diskse
> >>       sd->r_items = eina_list_remove(sd->r_items, it);
> >>
> >>     sd->items = eina_list_remove(sd->items, it);
> >> +   sd->under_items = eina_list_remove(sd->under_items, it);
> >> +   sd->over_items = eina_list_remove(sd->over_items, it);
> >>
> >>     if (sd->selected_item == it)
> >>       {
> >> @@ -378,10 +380,10 @@ _elm_diskselector_item_elm_widget_item_del_pre(Eo
> >> *eo_it EINA_UNUSED, Elm_Diskse
> >>       {
> >>          if (!sd->item_count)
> >>            {
> >> -             evas_object_hide(sd->VIEW(first));
> >> -             evas_object_hide(sd->VIEW(second));
> >> -             evas_object_hide(sd->VIEW(last));
> >> -             evas_object_hide(sd->VIEW(s_last));
> >> +             if (sd->first) evas_object_hide(sd->VIEW(first));
> >> +             if (sd->second) evas_object_hide(sd->VIEW(second));
> >> +             if (sd->last) evas_object_hide(sd->VIEW(last));
> >> +             if (sd->s_last) evas_object_hide(sd->VIEW(s_last));
> >>
> >>               EINA_LIST_FOREACH(sd->under_items, l, item2)
> >>                 evas_object_hide(VIEW(item2));
> >> @@ -394,23 +396,30 @@ _elm_diskselector_item_elm_widget_item_del_pre(Eo
> >> *eo_it EINA_UNUSED, Elm_Diskse
> >>               dit = eina_list_nth(sd->items, 0);
> >>               if (dit)
> >>                 {
> >> -                  eina_stringshare_replace(&sd->first->label,
> dit->label);
> >> -                  edje_object_part_text_escaped_set
> >> -                    (sd->VIEW(first), "elm.text", sd->first->label);
> >> +                  if (sd->first)
> >> +                    {
> >> +                       eina_stringshare_replace(&sd->first->label,
> >> dit->label);
> >> +                       edje_object_part_text_escaped_set
> >> +                          (sd->VIEW(first), "elm.text",
> sd->first->label);
> >> +                    }
> >>                 }
> >>
> >>               dit = eina_list_nth(sd->items, 1);
> >>               if (dit)
> >>                 {
> >> -                  eina_stringshare_replace(&sd->second->label,
> >> dit->label);
> >> -                  edje_object_part_text_escaped_set
> >> -                    (sd->VIEW(second), "elm.text", sd->second->label);
> >> +                  if (sd->second)
> >> +                    {
> >> +                       eina_stringshare_replace(&sd->second->label,
> >> dit->label);
> >> +                       edje_object_part_text_escaped_set
> >> +                          (sd->VIEW(second), "elm.text",
> >> sd->second->label);
> >> +                    }
> >>                 }
> >>               // if more than 3 itmes should be displayed
> >>               for (i = 2; i < CEIL(sd->display_item_num); i++)
> >>                 {
> >>                    dit = eina_list_nth(sd->items, i);
> >>                    item2 = eina_list_nth(sd->over_items, i - 2);
> >> +                  if (!dit || !item2) continue;
> >>                    eina_stringshare_replace(&item2->label, dit->label);
> >>                    edje_object_part_text_escaped_set
> >>                      (VIEW(item2), "elm.text", item2->label);
> >> @@ -419,23 +428,30 @@ _elm_diskselector_item_elm_widget_item_del_pre(Eo
> >> *eo_it EINA_UNUSED, Elm_Diskse
> >>               dit = eina_list_nth(sd->items, eina_list_count(sd->items)
> -
> >> 1);
> >>               if (dit)
> >>                 {
> >> -                  eina_stringshare_replace(&sd->last->label,
> dit->label);
> >> -                  edje_object_part_text_escaped_set
> >> -                    (sd->VIEW(last), "elm.text", sd->last->label);
> >> +                  if (sd->last)
> >> +                    {
> >> +                       eina_stringshare_replace(&sd->last->label,
> >> dit->label);
> >> +                       edje_object_part_text_escaped_set
> >> +                          (sd->VIEW(last), "elm.text",
> sd->last->label);
> >> +                    }
> >>                 }
> >>
> >>               dit = eina_list_nth(sd->items, eina_list_count(sd->items)
> -
> >> 2);
> >>               if (dit)
> >>                 {
> >> -                  eina_stringshare_replace(&sd->s_last->label,
> >> dit->label);
> >> -                  edje_object_part_text_escaped_set
> >> -                    (sd->VIEW(s_last), "elm.text", sd->s_last->label);
> >> +                  if (sd->s_last)
> >> +                    {
> >> +                       eina_stringshare_replace(&sd->s_last->label,
> >> dit->label);
> >> +                       edje_object_part_text_escaped_set
> >> +                          (sd->VIEW(s_last), "elm.text",
> >> sd->s_last->label);
> >> +                    }
> >>                 }
> >>               // if more than 3 itmes should be displayed
> >>               for (i = 3; i <= CEIL(sd->display_item_num); i++)
> >>                 {
> >>                    dit = eina_list_nth(sd->items, sd->item_count - i);
> >>                    item2 = eina_list_nth(sd->under_items, i - 3);
> >> +                  if (!dit || !item2) continue;
> >>                    eina_stringshare_replace(&item2->label, dit->label);
> >>                    edje_object_part_text_escaped_set
> >>                      (VIEW(item2), "elm.text", item2->label);
> >> @@ -449,7 +465,7 @@ _elm_diskselector_item_elm_widget_item_del_pre(Eo
> >> *eo_it EINA_UNUSED, Elm_Diskse
> >>
> >>     _sizing_eval(obj);
> >>
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_it, ELM_DISKSELECTOR_ITEM_CLASS, eo_destructor());
> >>  }
> >>
> >>  EOLIAN static void
> >> @@ -1098,14 +1114,10 @@ _scroll_drag_stop_cb(Evas_Object *obj,
> >>  }
> >>
> >>  static void
> >> -_round_item_del(Elm_Diskselector_Data *sd,
> >> +_round_item_del(Elm_Diskselector_Data *sd EINA_UNUSED,
> >>                  Elm_Diskselector_Item_Data *it)
> >>  {
> >>     if (!it) return;
> >> -
> >> -   elm_box_unpack(sd->main_box, VIEW(it));
> >> -   sd->r_items = eina_list_remove(sd->r_items, it);
> >> -   eina_stringshare_del(it->label);
> >>     eo_del(EO_OBJ(it));
> >>  }
> >>
> >> @@ -1318,70 +1330,70 @@ EOLIAN static void
> >>  _elm_diskselector_evas_object_smart_del(Eo *obj, Elm_Diskselector_Data
> >> *sd)
> >>  {
> >>     Elm_Diskselector_Item_Data *it;
> >> -   Eina_List *l;
> >> +   Eina_List *l, *l2;
> >>     Evas_Object *blank;
> >>
> >>     /* left blank */
> >> -   EINA_LIST_FOREACH (sd->left_blanks, l, blank)
> >> +   EINA_LIST_FREE (sd->left_blanks, blank)
> >>       evas_object_del(blank);
> >>
> >>     /* right blank */
> >> -   EINA_LIST_FOREACH (sd->right_blanks, l, blank)
> >> +   EINA_LIST_FREE (sd->right_blanks, blank)
> >>       evas_object_del(blank);
> >>
> >>     if (sd->last)
> >>       {
> >> -        eina_stringshare_del(sd->last->label);
> >>          evas_object_del(sd->VIEW(last));
> >>          eo_del(EO_OBJ(sd->last));
> >> +        sd->last = NULL;
> >>       }
> >>
> >>     if (sd->s_last)
> >>       {
> >> -        eina_stringshare_del(sd->s_last->label);
> >>          evas_object_del(sd->VIEW(s_last));
> >>          eo_del(EO_OBJ(sd->s_last));
> >> +        sd->s_last = NULL;
> >>       }
> >>
> >>     if (sd->second)
> >>       {
> >> -        eina_stringshare_del(sd->second->label);
> >>          evas_object_del(sd->VIEW(second));
> >>          eo_del(EO_OBJ(sd->second));
> >> +        sd->second = NULL;
> >>       }
> >>
> >>     if (sd->first)
> >>       {
> >> -        eina_stringshare_del(sd->first->label);
> >>          evas_object_del(sd->VIEW(first));
> >>          eo_del(EO_OBJ(sd->first));
> >> +        sd->first = NULL;
> >>       }
> >>
> >> -   EINA_LIST_FOREACH(sd->under_items, l, it)
> >> +   EINA_LIST_FOREACH_SAFE(sd->under_items, l, l2, it)
> >>       {
> >>          if (it)
> >>            {
> >> -             eina_stringshare_del(it->label);
> >>               evas_object_del(VIEW(it));
> >>               eo_del(EO_OBJ(it));
> >>            }
> >>       }
> >> +   sd->under_items = eina_list_free(sd->under_items);
> >>
> >> -   EINA_LIST_FOREACH(sd->over_items, l, it)
> >> +   EINA_LIST_FOREACH_SAFE(sd->over_items, l, l2, it)
> >>       {
> >>          if (it)
> >>            {
> >> -             eina_stringshare_del(it->label);
> >>               evas_object_del(VIEW(it));
> >>               eo_del(EO_OBJ(it));
> >>            }
> >>       }
> >> +   sd->over_items = eina_list_free(sd->over_items);
> >>
> >> -   EINA_LIST_FREE(sd->items, it)
> >> +   EINA_LIST_FOREACH_SAFE(sd->items, l, l2, it)
> >>       {
> >> -        _item_del(it);
> >>          eo_del(EO_OBJ(it));
> >>       }
> >> +   sd->items = eina_list_free(sd->items);
> >>     sd->r_items = eina_list_free(sd->r_items);
> >>
> >>     ELM_SAFE_FREE(sd->scroller_move_idle_enterer,
> ecore_idle_enterer_del);
> >> @@ -1605,7 +1617,6 @@ _elm_diskselector_clear(Eo *obj,
> >> Elm_Diskselector_Data *sd)
> >>     sd->selected_item = NULL;
> >>     EINA_LIST_FREE(sd->items, it)
> >>       {
> >> -        _item_del(it);
> >>          eo_del(EO_OBJ(it));
> >>       }
> >>
> >> diff --git a/src/lib/elm_diskselector_item.eo
> >> b/src/lib/elm_diskselector_item.eo
> >> index 3df81da..84e63f2 100644
> >> --- a/src/lib/elm_diskselector_item.eo
> >> +++ b/src/lib/elm_diskselector_item.eo
> >> @@ -95,7 +95,7 @@ class Elm_Diskselector_Item(Elm_Widget_Item)
> >>        }
> >>        implements {
> >>             Eo.Base.constructor;
> >> -           Elm_Widget_Item.del_pre;
> >> +           Eo.Base.destructor;
> >>             Elm_Widget_Item.part_text.get;
> >>             Elm_Widget_Item.part_text.set;
> >>             Elm_Widget_Item.part_content.get;
> >> diff --git a/src/lib/elm_flipselector.c b/src/lib/elm_flipselector.c
> >> index c45a19e..bae9231 100644
> >> --- a/src/lib/elm_flipselector.c
> >> +++ b/src/lib/elm_flipselector.c
> >> @@ -205,49 +205,6 @@ _sentinel_eval(Elm_Flipselector_Data *sd)
> >>       }
> >>  }
> >>
> >> -/* TODO: create a flag to avoid looping here all times */
> >> -static void
> >> -_flipselector_process_deletions(Elm_Flipselector_Data *sd)
> >> -{
> >> -   Eina_List *l;
> >> -   Elm_Object_Item *eo_item;
> >> -   Eina_Bool skip = EINA_TRUE;
> >> -   Eina_Bool sentinel_eval = EINA_FALSE;
> >> -
> >> -   sd->walking++; /* avoid nested deletions */
> >> -
> >> -   EINA_LIST_FOREACH(sd->items, l, eo_item)
> >> -     {
> >> -        ELM_FLIPSELECTOR_ITEM_DATA_GET(eo_item, item);
> >> -        if (!item->deleted) continue;
> >> -
> >> -        if (sd->current == l)
> >> -          {
> >> -             if (sd->current == sd->sentinel) sentinel_eval =
> EINA_TRUE;
> >> -             sd->current = eina_list_prev(sd->current);
> >> -          }
> >> -        sd->items = eina_list_remove(sd->items, eo_item);
> >> -
> >> -        if (!sd->current) sd->current = sd->items;
> >> -
> >> -        eo_do(eo_item, elm_wdg_item_del());
> >> -        skip = EINA_FALSE;
> >> -
> >> -        if (eina_list_count(sd->items) <= 1)
> >> -          elm_layout_signal_emit
> >> -            (sd->obj, "elm,state,button,hidden", "elm");
> >> -        else
> >> -          elm_layout_signal_emit
> >> -            (sd->obj, "elm,state,button,visible", "elm");
> >> -     }
> >> -
> >> -   if (!skip) _update_view(sd->obj);
> >> -
> >> -   if (sentinel_eval) _sentinel_eval(sd);
> >> -
> >> -   sd->walking--;
> >> -}
> >> -
> >>  static inline void
> >>  _flipselector_unwalk(Elm_Flipselector_Data *sd)
> >>  {
> >> @@ -259,8 +216,6 @@ _flipselector_unwalk(Elm_Flipselector_Data *sd)
> >>          sd->walking = 0;
> >>       }
> >>     if (sd->walking) return;
> >> -
> >> -   _flipselector_process_deletions(sd);
> >>  }
> >>
> >>  static void
> >> @@ -275,9 +230,8 @@ _on_item_changed(Elm_Flipselector_Data *sd)
> >>
> >>     if (item->func)
> >>       item->func((void *)WIDGET_ITEM_DATA_GET(EO_OBJ(item)),
> WIDGET(item),
> >> eo_item);
> >> -   if (!item->deleted)
> >> -     evas_object_smart_callback_call
> >> -       (sd->obj, SIG_SELECTED, eo_item);
> >> +   evas_object_smart_callback_call
> >> +      (sd->obj, SIG_SELECTED, eo_item);
> >>  }
> >>
> >>  static void
> >> @@ -296,22 +250,14 @@ _send_msg(Elm_Flipselector_Data *sd,
> >>     _on_item_changed(sd);
> >>  }
> >>
> >> -EOLIAN static Eina_Bool
> >> -_elm_flipselector_item_elm_widget_item_del_pre(Eo *eo_item,
> >> Elm_Flipselector_Item_Data *item)
> >> +EOLIAN static void
> >> +_elm_flipselector_item_eo_base_destructor(Eo *eo_item,
> >> Elm_Flipselector_Item_Data *item)
> >>  {
> >>     Elm_Object_Item *eo_item2;
> >>     Eina_List *l;
> >>
> >>     ELM_FLIPSELECTOR_DATA_GET(WIDGET(item), sd);
> >>
> >> -   if (sd->walking > 0)
> >> -     {
> >> -        item->deleted = EINA_TRUE;
> >> -        return EINA_FALSE;
> >> -     }
> >> -
> >> -   _flipselector_walk(sd);
> >> -
> >>     EINA_LIST_FOREACH(sd->items, l, eo_item2)
> >>       {
> >>          if (eo_item2 == eo_item)
> >> @@ -333,11 +279,18 @@ _elm_flipselector_item_elm_widget_item_del_pre(Eo
> >> *eo_item, Elm_Flipselector_Ite
> >>            }
> >>       }
> >>
> >> +   if (eina_list_count(sd->items) <= 1)
> >> +      elm_layout_signal_emit
> >> +         (sd->obj, "elm,state,button,hidden", "elm");
> >> +   else
> >> +      elm_layout_signal_emit
> >> +         (sd->obj, "elm,state,button,visible", "elm");
> >> +
> >>     eina_stringshare_del(item->label);
> >>     _sentinel_eval(sd);
> >> -   _flipselector_unwalk(sd);
> >> +   _update_view(sd->obj);
> >>
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_item, ELM_FLIPSELECTOR_ITEM_CLASS, eo_destructor());
> >>  }
> >>
> >>  EOLIAN static void
> >> @@ -709,36 +662,13 @@ _elm_flipselector_items_get(Eo *obj EINA_UNUSED,
> >> Elm_Flipselector_Data *sd)
> >>  EOLIAN static Elm_Object_Item*
> >>  _elm_flipselector_first_item_get(Eo *obj EINA_UNUSED,
> >> Elm_Flipselector_Data *sd)
> >>  {
> >> -   Elm_Object_Item *eo_item;
> >> -   Eina_List *l;
> >> -
> >> -   if (!sd->items) return NULL;
> >> -
> >> -   EINA_LIST_FOREACH(sd->items, l, eo_item)
> >> -     {
> >> -        ELM_FLIPSELECTOR_ITEM_DATA_GET(eo_item, it);
> >> -        if (it->deleted) continue;
> >> -        return eo_item;
> >> -     }
> >> -
> >> -   return NULL;
> >> +   return eina_list_data_get(sd->items);
> >>  }
> >>
> >>  EOLIAN static Elm_Object_Item*
> >>  _elm_flipselector_last_item_get(Eo *obj EINA_UNUSED,
> >> Elm_Flipselector_Data *sd)
> >>  {
> >> -   Elm_Object_Item *eo_item;
> >> -   Eina_List *l;
> >> -
> >> -   if (!sd->items) return NULL;
> >> -
> >> -   EINA_LIST_REVERSE_FOREACH(sd->items, l, eo_item)
> >> -     {
> >> -        ELM_FLIPSELECTOR_ITEM_DATA_GET(eo_item, item);
> >> -        if (item->deleted) continue;
> >> -        return eo_item;
> >> -     }
> >> -   return NULL;
> >> +   return eina_list_last_data_get(sd->items);
> >>  }
> >>
> >>  EOLIAN static Elm_Object_Item*
> >> @@ -768,12 +698,9 @@ _elm_flipselector_item_selected_set(Eo *eo_item,
> >>          EINA_LIST_FOREACH(sd->items, l, _eo_item)
> >>            {
> >>               ELM_FLIPSELECTOR_ITEM_DATA_GET(_eo_item, _item);
> >> -             if (!_item->deleted)
> >> -               {
> >> -                  sd->current = l;
> >> -                  _send_msg(sd, MSG_FLIP_UP, (char *)_item->label);
> >> -                  break;
> >> -               }
> >> +             sd->current = l;
> >> +             _send_msg(sd, MSG_FLIP_UP, (char *)_item->label);
> >> +             break;
> >>            }
> >>          _flipselector_unwalk(sd);
> >>          return;
> >> diff --git a/src/lib/elm_flipselector_item.eo
> >> b/src/lib/elm_flipselector_item.eo
> >> index b9101b3..431da94 100644
> >> --- a/src/lib/elm_flipselector_item.eo
> >> +++ b/src/lib/elm_flipselector_item.eo
> >> @@ -65,7 +65,7 @@ class Elm_Flipselector_Item(Elm_Widget_Item)
> >>     }
> >>     implements {
> >>          Eo.Base.constructor;
> >> -        Elm_Widget_Item.del_pre;
> >> +        Eo.Base.destructor;
> >>          Elm_Widget_Item.signal_emit;
> >>          Elm_Widget_Item.part_text.get;
> >>          Elm_Widget_Item.part_text.set;
> >> diff --git a/src/lib/elm_hoversel_item.eo b/src/lib/elm_hoversel_item.eo
> >> index 729264b..97d78fd 100644
> >> --- a/src/lib/elm_hoversel_item.eo
> >> +++ b/src/lib/elm_hoversel_item.eo
> >> @@ -35,8 +35,8 @@ class Elm_Hoversel_Item(Elm_Widget_Item)
> >>     }
> >>     implements {
> >>          Eo.Base.constructor;
> >> +        Eo.Base.destructor;
> >>          Elm_Widget_Item.signal_emit;
> >> -        Elm_Widget_Item.del_pre;
> >>          Elm_Widget_Item.part_text.get;
> >>          Elm_Widget_Item.style.get;
> >>          Elm_Widget_Item.style.set;
> >> diff --git a/src/lib/elm_index.c b/src/lib/elm_index.c
> >> index c9ac287..3c9bb24 100644
> >> --- a/src/lib/elm_index.c
> >> +++ b/src/lib/elm_index.c
> >> @@ -424,15 +424,15 @@ _elm_index_elm_layout_sizing_eval(Eo *obj,
> >> Elm_Index_Data *_pd EINA_UNUSED)
> >>     evas_object_size_hint_max_set(obj, -1, -1);
> >>  }
> >>
> >> -EOLIAN static Eina_Bool
> >> -_elm_index_item_elm_widget_item_del_pre(Eo *eo_item EINA_UNUSED,
> >> Elm_Index_Item_Data *it)
> >> +EOLIAN static void
> >> +_elm_index_item_eo_base_destructor(Eo *eo_item EINA_UNUSED,
> >> Elm_Index_Item_Data *it)
> >>  {
> >>     ELM_INDEX_DATA_GET(WIDGET(it), sd);
> >>
> >>     _item_free(it);
> >>     _index_box_clear(WIDGET(it), sd->level);
> >>
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_item, ELM_INDEX_ITEM_CLASS, eo_destructor());
> >>  }
> >>
> >>  EOLIAN static void
> >> diff --git a/src/lib/elm_index_item.eo b/src/lib/elm_index_item.eo
> >> index a99a898..fe88f60 100644
> >> --- a/src/lib/elm_index_item.eo
> >> +++ b/src/lib/elm_index_item.eo
> >> @@ -40,7 +40,7 @@ class Elm_Index_Item(Elm_Widget_Item)
> >>     }
> >>     implements {
> >>          Eo.Base.constructor;
> >> +        Eo.Base.destructor;
> >>          Elm_Widget_Item.access_register;
> >> -        Elm_Widget_Item.del_pre;
> >>     }
> >>  }
> >> diff --git a/src/lib/elm_list.c b/src/lib/elm_list.c
> >> index 3cbf451..8a746a7 100644
> >> --- a/src/lib/elm_list.c
> >> +++ b/src/lib/elm_list.c
> >> @@ -2367,6 +2367,7 @@ _elm_list_evas_object_smart_del(Eo *obj,
> >> Elm_List_Data *sd)
> >>          ELM_LIST_ITEM_DATA_GET(eo_it, it);
> >>          /* issuing free because of "locking" item del pre hook */
> >>          _elm_list_item_free(it);
> >> +        WIDGET(it) = NULL;
> >>          eo_del(EO_OBJ(it));
> >>       }
> >>
> >> diff --git a/src/lib/elm_menu.c b/src/lib/elm_menu.c
> >> index e568c68..7bcf352 100644
> >> --- a/src/lib/elm_menu.c
> >> +++ b/src/lib/elm_menu.c
> >> @@ -52,11 +52,6 @@ _item_del(Elm_Object_Item *eo_item)
> >>       _item_del(child);
> >>     eina_list_free(item->submenu.items);
> >>
> >> -   eina_stringshare_del(item->label);
> >> -   evas_object_del(item->submenu.hv);
> >> -   evas_object_del(item->submenu.location);
> >> -   eina_stringshare_del(item->icon_str);
> >> -
> >>     eo_del(eo_item);
> >>  }
> >>
> >> @@ -961,13 +956,14 @@ _elm_menu_item_add_helper(Evas_Object *obj,
> >>     _sizing_eval(obj);
> >>  }
> >>
> >> -EOLIAN static Eina_Bool
> >> -_elm_menu_item_elm_widget_item_del_pre(Eo *eo_item, Elm_Menu_Item_Data
> >> *item)
> >> +EOLIAN static void
> >> +_elm_menu_item_eo_base_destructor(Eo *eo_item, Elm_Menu_Item_Data
> *item)
> >>  {
> >>     ELM_MENU_DATA_GET(WIDGET(item), sd);
> >>
> >>     elm_menu_item_subitems_clear(eo_item);
> >>     eina_stringshare_del(item->label);
> >> +   eina_stringshare_del(item->icon_str);
> >>     evas_object_del(item->content);
> >>     evas_object_del(item->submenu.hv);
> >>     evas_object_del(item->submenu.location);
> >> @@ -981,7 +977,7 @@ _elm_menu_item_elm_widget_item_del_pre(Eo *eo_item,
> >> Elm_Menu_Item_Data *item)
> >>     if (sd->dbus_menu)
> >>       _elm_dbus_menu_item_delete(sd->dbus_menu, item->dbus_idx);
> >>
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_item, ELM_MENU_ITEM_CLASS, eo_destructor());
> >>  }
> >>
> >>  EOLIAN static void
> >> diff --git a/src/lib/elm_menu_item.eo b/src/lib/elm_menu_item.eo
> >> index 92eda75..68eb136 100644
> >> --- a/src/lib/elm_menu_item.eo
> >> +++ b/src/lib/elm_menu_item.eo
> >> @@ -122,7 +122,7 @@ class Elm_Menu_Item(Elm_Widget_Item)
> >>     }
> >>     implements {
> >>          Eo.Base.constructor;
> >> -        Elm_Widget_Item.del_pre;
> >> +        Eo.Base.destructor;
> >>          Elm_Widget_Item.disable;
> >>          Elm_Widget_Item.signal_emit;
> >>          Elm_Widget_Item.part_text.get;
> >> diff --git a/src/lib/elm_multibuttonentry_item.eo
> >> b/src/lib/elm_multibuttonentry_item.eo
> >> index 2e42fc8..5f05b0d 100644
> >> --- a/src/lib/elm_multibuttonentry_item.eo
> >> +++ b/src/lib/elm_multibuttonentry_item.eo
> >> @@ -46,7 +46,7 @@ class Elm_Multibuttonentry_Item(Elm_Widget_Item)
> >>     }
> >>     implements {
> >>          Eo.Base.constructor;
> >> -        Elm_Widget_Item.del_pre;
> >> +        Eo.Base.destructor;
> >>          Elm_Widget_Item.signal_emit;
> >>          Elm_Widget_Item.part_text.get;
> >>          Elm_Widget_Item.part_text.set;
> >> diff --git a/src/lib/elm_naviframe_item.eo
> b/src/lib/elm_naviframe_item.eo
> >> index e84b5b9..6090d53 100644
> >> --- a/src/lib/elm_naviframe_item.eo
> >> +++ b/src/lib/elm_naviframe_item.eo
> >> @@ -99,7 +99,7 @@ class Elm_Naviframe_Item(Elm_Widget_Item)
> >>     }
> >>     implements {
> >>          Eo.Base.constructor;
> >> -        Elm_Widget_Item.del_pre;
> >> +        Eo.Base.destructor;
> >>          Elm_Widget_Item.signal_emit;
> >>          Elm_Widget_Item.part_text.set;
> >>          Elm_Widget_Item.part_text.get;
> >> diff --git a/src/lib/elm_popup_item.eo b/src/lib/elm_popup_item.eo
> >> index cfdc57b..bf7ffe3 100644
> >> --- a/src/lib/elm_popup_item.eo
> >> +++ b/src/lib/elm_popup_item.eo
> >> @@ -3,7 +3,7 @@ class Elm_Popup_Item(Elm_Widget_Item)
> >>        eo_prefix: elm_obj_popup_item;
> >>        implements {
> >>             Eo.Base.constructor;
> >> -           Elm_Widget_Item.del_pre;
> >> +           Eo.Base.destructor;
> >>             Elm_Widget_Item.disable;
> >>             Elm_Widget_Item.signal_emit;
> >>             Elm_Widget_Item.part_text.get;
> >> diff --git a/src/lib/elm_segment_control.c
> b/src/lib/elm_segment_control.c
> >> index 801253c..99a329f 100644
> >> --- a/src/lib/elm_segment_control.c
> >> +++ b/src/lib/elm_segment_control.c
> >> @@ -489,15 +489,15 @@
> >> _elm_segment_control_item_elm_widget_item_part_content_get(Eo *eo_item
> >> EINA_UNUS
> >>       return edje_object_part_swallow_get(VIEW(item), part);
> >>  }
> >>
> >> -static Eina_Bool
> >> -_elm_segment_control_item_elm_widget_item_del_pre(Eo *eo_item
> >> EINA_UNUSED, Elm_Segment_Control_Item_Data *item)
> >> +EOLIAN static void
> >> +_elm_segment_control_item_eo_base_destructor(Eo *eo_item,
> >> Elm_Segment_Control_Item_Data *item)
> >>  {
> >>     ELM_SEGMENT_CONTROL_DATA_GET(WIDGET(item), sd);
> >>
> >>     _item_free(item);
> >>     _update_list(sd);
> >>
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_item, ELM_SEGMENT_CONTROL_ITEM_CLASS,
> eo_destructor());
> >>  }
> >>
> >>  static char *
> >> @@ -628,8 +628,6 @@ _elm_segment_control_evas_object_smart_del(Eo *obj,
> >> Elm_Segment_Control_Data *sd
> >>
> >>     EINA_LIST_FREE(sd->items, eo_it)
> >>       {
> >> -        ELM_SEGMENT_ITEM_DATA_GET(eo_it, it);
> >> -        _item_free(it);
> >>          eo_del(eo_it);
> >>       }
> >>
> >> diff --git a/src/lib/elm_segment_control_item.eo
> >> b/src/lib/elm_segment_control_item.eo
> >> index 0d4d7f2..317ef2b 100644
> >> --- a/src/lib/elm_segment_control_item.eo
> >> +++ b/src/lib/elm_segment_control_item.eo
> >> @@ -54,11 +54,11 @@ class Elm_Segment_Control_Item(Elm_Widget_Item)
> >>     }
> >>     implements {
> >>          Eo.Base.constructor;
> >> +        Eo.Base.destructor;
> >>          Elm_Widget_Item.access_register;
> >>          Elm_Widget_Item.part_text.get;
> >>          Elm_Widget_Item.part_text.set;
> >>          Elm_Widget_Item.part_content.get;
> >>          Elm_Widget_Item.part_content.set;
> >> -        Elm_Widget_Item.del_pre;
> >>     }
> >>  }
> >> diff --git a/src/lib/elm_slideshow.c b/src/lib/elm_slideshow.c
> >> index 0f950f7..d2a943d 100644
> >> --- a/src/lib/elm_slideshow.c
> >> +++ b/src/lib/elm_slideshow.c
> >> @@ -285,10 +285,10 @@ _timer_cb(void *data)
> >>     return ECORE_CALLBACK_CANCEL;
> >>  }
> >>
> >> -EOLIAN static Eina_Bool
> >> -_elm_slideshow_item_elm_widget_item_del_pre(Eo *eo_item,
> >> Elm_Slideshow_Item_Data *item)
> >> +EOLIAN static void
> >> +_elm_slideshow_item_eo_base_destructor(Eo *eo_item,
> >> Elm_Slideshow_Item_Data *item)
> >>  {
> >> -   ELM_SLIDESHOW_DATA_GET_OR_RETURN_VAL(WIDGET(item), sd, EINA_FALSE);
> >> +   ELM_SLIDESHOW_DATA_GET_OR_RETURN(WIDGET(item), sd);
> >>
> >>     if (sd->previous == item) sd->previous = NULL;
> >>     if (sd->current == item)
> >> @@ -312,7 +312,7 @@ _elm_slideshow_item_elm_widget_item_del_pre(Eo
> >> *eo_item, Elm_Slideshow_Item_Data
> >>     if ((VIEW(item)) && (item->itc->func.del))
> >>       item->itc->func.del(elm_object_item_data_get(eo_item),
> VIEW(item));
> >>
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_item, ELM_SLIDESHOW_ITEM_CLASS, eo_destructor());
> >>  }
> >>
> >>  EOLIAN static void
> >> diff --git a/src/lib/elm_slideshow_item.eo
> b/src/lib/elm_slideshow_item.eo
> >> index ffe6c59..609d60e 100644
> >> --- a/src/lib/elm_slideshow_item.eo
> >> +++ b/src/lib/elm_slideshow_item.eo
> >> @@ -36,6 +36,6 @@ class Elm_Slideshow_Item(Elm_Widget_Item)
> >>     }
> >>     implements {
> >>          Eo.Base.constructor;
> >> -        Elm_Widget_Item.del_pre;
> >> +        Eo.Base.destructor;
> >>     }
> >>  }
> >> diff --git a/src/lib/elm_toolbar.c b/src/lib/elm_toolbar.c
> >> index 2a019fc..2bfdeb3 100644
> >> --- a/src/lib/elm_toolbar.c
> >> +++ b/src/lib/elm_toolbar.c
> >> @@ -2219,8 +2219,8 @@ _access_state_cb(void *data, Evas_Object *obj
> >> EINA_UNUSED)
> >>     return NULL;
> >>  }
> >>
> >> -EOLIAN static Eina_Bool
> >> -_elm_toolbar_item_elm_widget_item_del_pre(Eo *eo_item EINA_UNUSED,
> >> Elm_Toolbar_Item_Data *item)
> >> +EOLIAN static void
> >> +_elm_toolbar_item_eo_base_destructor(Eo *eo_item, Elm_Toolbar_Item_Data
> >> *item)
> >>  {
> >>     Elm_Toolbar_Item_Data *next = NULL;
> >>     Evas_Object *obj;
> >> @@ -2248,7 +2248,7 @@ _elm_toolbar_item_elm_widget_item_del_pre(Eo
> >> *eo_item EINA_UNUSED, Elm_Toolbar_I
> >>     if (item != sd->more_item)
> >>        eo_do(obj, elm_obj_widget_theme_apply());
> >>
> >> -   return EINA_TRUE;
> >> +   eo_do_super(eo_item, ELM_TOOLBAR_ITEM_CLASS, eo_destructor());
> >>  }
> >>
> >>  static void
> >> diff --git a/src/lib/elm_toolbar_item.eo b/src/lib/elm_toolbar_item.eo
> >> index b3c9105..9d0e802 100644
> >> --- a/src/lib/elm_toolbar_item.eo
> >> +++ b/src/lib/elm_toolbar_item.eo
> >> @@ -415,8 +415,8 @@ class Elm_Toolbar_Item(Elm_Widget_Item)
> >>        }
> >>        implements {
> >>             Eo.Base.constructor;
> >> +           Eo.Base.destructor;
> >>             Elm_Widget_Item.disable;
> >> -           Elm_Widget_Item.del_pre;
> >>             Elm_Widget_Item.focus.set;
> >>             Elm_Widget_Item.focus.get;
> >>             Elm_Widget_Item.part_text.get;
> >> diff --git a/src/lib/elm_widget_flipselector.h
> >> b/src/lib/elm_widget_flipselector.h
> >> index b482fef..ef2edef 100644
> >> --- a/src/lib/elm_widget_flipselector.h
> >> +++ b/src/lib/elm_widget_flipselector.h
> >> @@ -48,7 +48,6 @@ struct _Elm_Flipselector_Item_Data
> >>
> >>     const char   *label;
> >>     Evas_Smart_Cb func;
> >> -   int           deleted : 1;
> >>  };
> >>
> >>  #define ELM_FLIPSELECTOR_DATA_GET(o, sd) \
> >> diff --git a/src/lib/elm_widget_naviframe.h
> >> b/src/lib/elm_widget_naviframe.h
> >> index bcfea5b..684d148 100644
> >> --- a/src/lib/elm_widget_naviframe.h
> >> +++ b/src/lib/elm_widget_naviframe.h
> >> @@ -60,8 +60,6 @@ struct _Elm_Naviframe_Item_Data
> >>     Evas_Coord   minw;
> >>     Evas_Coord   minh;
> >>
> >> -   int          ref;
> >> -
> >>     Eina_Bool    title_enabled : 1;
> >>     Eina_Bool    popping : 1; /**< a flag to notify the item is on
> poping.
> >> this flag is set true at the start of item pop. */
> >>     Eina_Bool    delete_me : 1; /**< a flag to notify the item is on
> >> deletion. this flag is set true at the start of item deletion. */
> >>
> >> --
> >>
> >>
> >>
> >
> ------------------------------------------------------------------------------
> > Comprehensive Server Monitoring with Site24x7.
> > Monitor 10 servers for $9/Month.
> > Get alerted through email, SMS, voice calls or mobile push notifications.
> > Take corrective actions from your mobile device.
> >
> http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk
> > _______________________________________________
> > enlightenment-devel mailing list
> > enlightenment-devel@lists.sourceforge.net
> > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
> >
>
>
------------------------------------------------------------------------------
Comprehensive Server Monitoring with Site24x7.
Monitor 10 servers for $9/Month.
Get alerted through email, SMS, voice calls or mobile push notifications.
Take corrective actions from your mobile device.
http://pubads.g.doubleclick.net/gampad/clk?id=154624111&iu=/4140/ostg.clktrk
_______________________________________________
enlightenment-devel mailing list
enlightenment-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-devel

Reply via email to