On Thu, 22 Mar 2012 09:51:49 +0900 Kim Shinwoo <kimcinoo....@gmail.com> said:
in svn it is! tnx! :) > OMG. Thanks for your response. You're definitely right. > I have attached revised patch. Please review the patch. > > Anyhow.. Are you alive?!! > > > 2012/3/21 Hyoyoung Chang <hyoyo...@gmail.com>: > > I think previous your mail is in another your mail account :P > > btw, i have a question. > > > > + if (it->icon) > > + evas_object_event_callback_del(it->icon, > > + EVAS_CALLBACK_CHANGED_SIZE_HINTS, > > + _changed_size_hints); > > + if (it->end) > > + evas_object_event_callback_del(it->icon, > > + EVAS_CALLBACK_CHANGED_SIZE_HINTS, > > + _changed_size_hints); > > > > in second callback_del, "it->icon" should be "it->end"? > > > > On Wed, Mar 21, 2012 at 5:53 PM, cnook <kimci...@gmail.com> wrote: > >> Dear All, Hello. > >> > >> I have resolved the elm_list issue(goto ELM_LIST_CRASH_ISSUE_MAIL below, I > >> sent mail but I cannot find the previous mail -_-;). > >> It would be related with double free issue. In the "sub-obejct-del" > >> callback which name is _sub_del() sets item->icon to NULL. > >> And in the EVAS_CALLBACK_MOUSE_UP callback funtion which name is > >> _mouse_up() calls evas_object_unref(); > >> It would try to free the item->icon but the item->icon is already set to > >> NULL. So.. the crash would occur.. > >> > >> Anyhow my solutiion is the following. > >> > >> static void > >> _del_pre_hook(Evas_Object *obj) > >> { > >> Widget_Data *wd = elm_widget_data_get(obj); > >> const Eina_List *l; > >> Elm_List_Item *it; > >> > >> evas_object_smart_callback_del(obj, "sub-object-del", _sub_del); > >> > >> if (!wd) return; > >> > >> EINA_LIST_FOREACH(wd->items, l, it) > >> { > >> if (it->icon) > >> evas_object_event_callback_del(it->icon, > >> EVAS_CALLBACK_CHANGED_SIZE_HINTS, > >> _changed_size_hints); > >> if (it->end) > >> evas_object_event_callback_del(it->icon, > >> EVAS_CALLBACK_CHANGED_SIZE_HINTS, > >> _changed_size_hints); > >> } > >> > >> evas_object_event_callback_del(wd->scr, > >> EVAS_CALLBACK_CHANGED_SIZE_HINTS, > >> _changed_size_hints); > >> evas_object_event_callback_del(wd->box, > >> EVAS_CALLBACK_CHANGED_SIZE_HINTS, > >> _changed_size_hints); > >> } > >> > >> I'm not sure this is the best way to resolve the issue. Anyhow the crash > >> does not occur. > >> I have checked this issue on the popup, ctxpopup and box already. > >> Please let me know, if you have any other proper ideas to reslove below > >> issue.. Thanks. > >> > >> > >> > >> > >> ELM_LIST_CRASH_ISSUE_MAIL: > >> > >> Dear All, Hello. > >> > >> If the elm_list is contained in the container - can be whatever containers > >> such as box, popup, ctxpopup and so on - > >> which has item with icon object such as a elm_radio and evas_object_del() > >> is called in the item select callback, the application is crashed. > >> If there is no icon on the elm_list item, the crash does not occur. The > >> example to occur the crash as the following. > >> > >> > >> {{{ > >> static void _filter_all_cb(void *data, Evas_Object *obj, > >> void *event_info) > >> { > >> Evas_Object *popup = (Evas_Object *)data; > >> evas_object_del(popup); > >> } > >> > >> static void > >> _popup_center_text_cb(void *data, Evas_Object *obj __UNUSED__, > >> void *event_info __UNUSED__) > >> { > >> Evas_Object *popup, *btn1,*list, *radio; > >> > >> popup = elm_popup_add(data); > >> evas_object_size_hint_weight_set(popup, EVAS_HINT_EXPAND, > >> EVAS_HINT_EXPAND); > >> > >> btn1 = elm_button_add(popup); > >> elm_object_text_set(btn1, "OK"); > >> elm_object_part_content_set(popup, "button1", btn1); > >> evas_object_smart_callback_add(btn1, "clicked", NULL, NULL); > >> > >> list = elm_list_add(popup); > >> evas_object_size_hint_weight_set(list, EVAS_HINT_EXPAND, > >> EVAS_HINT_EXPAND); > >> evas_object_size_hint_align_set(list, EVAS_HINT_FILL, EVAS_HINT_FILL); > >> elm_list_mode_set(list, ELM_LIST_EXPAND); > >> evas_object_show(list); > >> > >> Evas_Object *group; > >> group = radio = elm_radio_add(list); > >> evas_object_size_hint_weight_set(radio, EVAS_HINT_EXPAND, > >> EVAS_HINT_EXPAND); > >> elm_list_item_append(list, "Radio", radio, NULL, _filter_all_cb, popup); > >> evas_object_show(radio); > >> > >> elm_object_content_set(popup, list); > >> evas_object_show(popup); > >> } > >> > >> }}} > >> > >> I will check this issue also, but your help will be pretty good to me. > >> Thanks. > >> > >> ------------------------------------------------------------------------------ > >> This SF email is sponsosred by: > >> Try Windows Azure free for 90 days Click Here > >> http://p.sf.net/sfu/sfd2d-msazure > >> _______________________________________________ > >> enlightenment-devel mailing list > >> enlightenment-devel@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > >> > > > > ------------------------------------------------------------------------------ > > This SF email is sponsosred by: > > Try Windows Azure free for 90 days Click Here > > http://p.sf.net/sfu/sfd2d-msazure > > _______________________________________________ > > enlightenment-devel mailing list > > enlightenment-devel@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel -- ------------- Codito, ergo sum - "I code, therefore I am" -------------- The Rasterman (Carsten Haitzler) ras...@rasterman.com ------------------------------------------------------------------------------ This SF email is sponsosred by: Try Windows Azure free for 90 days Click Here http://p.sf.net/sfu/sfd2d-msazure _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel