Re: [E-devel] [patch] elm_genlist - bugfix evas_object_del at selected callback
Great. evas_object_ref/unref is a good idea. Thanks raster! Daniel Juyung Seo (SeoZ) On Wed, Aug 3, 2011 at 2:41 PM, Carsten Haitzler wrote: > On Tue, 02 Aug 2011 19:06:21 +0900 Hyoyoung Chang > said: > >> Dear developers. >> >> This patch is about elm_genlist. >> When a user delete genlist object at selected callback, >> Genlist don't proper handle it. >> Before genlist clearing, genlist delete its widget data. >> So sometimes, it's crashed. >> >> I made two point diffs >> 1. add genlist clearning at _del_hook >> 2. checking at _item_select, whether it's deleted or not. > > ok. is ee what you're doing. yes - it could be freed if cb deleted the obj. > kind of nasty to handle. this is one way to handle it. the other may be to > evas_object_ref() and unref() :) it is nicer and cleaner. for now your > patch goes in... but look at the object ref/unref. :) the side effect is that > the object deletion gets delayed). > > > -- > - Codito, ergo sum - "I code, therefore I am" -- > The Rasterman (Carsten Haitzler) ras...@rasterman.com > > > -- > BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA > The must-attend event for mobile developers. Connect with experts. > Get tools for creating Super Apps. See the latest technologies. > Sessions, hands-on labs, demos & much more. Register early & save! > http://p.sf.net/sfu/rim-blackberry-1 > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA The must-attend event for mobile developers. Connect with experts. Get tools for creating Super Apps. See the latest technologies. Sessions, hands-on labs, demos & much more. Register early & save! http://p.sf.net/sfu/rim-blackberry-1 ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] E SVN: tasn IN trunk/elementary/data/themes: . widgets
Raster was the only one who disagreed with this idea. So break him! Anyway we made it :) Daniel Juyung Seo (SeoZ) On Wed, Aug 3, 2011 at 3:25 PM, Tom Hacohen wrote: > On 03/08/11 03:50, Jihoon Kim wrote: >> Tom, wow, awesome job! >> I also have thought default.edc should be split into each widget.edc. >> Thanks your effort:) > > Ah, thunderbird crashed when I tried to reply with the whole commit > patch included. > > Np, as I said in the commit log, it took me less than 40 minutes, and I > really need it/will need it in the near future - so why not? > > The hard part was to convince raster. :) Had to promise I'll fix Edje if > this ever breaks anything for anyone. > > -- > Tom. > > -- > BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA > The must-attend event for mobile developers. Connect with experts. > Get tools for creating Super Apps. See the latest technologies. > Sessions, hands-on labs, demos & much more. Register early & save! > http://p.sf.net/sfu/rim-blackberry-1 > ___ > enlightenment-devel mailing list > enlightenment-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > -- BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA The must-attend event for mobile developers. Connect with experts. Get tools for creating Super Apps. See the latest technologies. Sessions, hands-on labs, demos & much more. Register early & save! http://p.sf.net/sfu/rim-blackberry-1 ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] [PATCH] mutex lock is not released in error cases in eina_share_common functions
Hello, all. In error cases, such as node is NULL in eina_share_common_del function mutex lock is not released when the function returns and this can cause infinite loop. Please review this patch and apply it if it is acceptable. Thanks. eina_share_common.c.patch Description: Binary data -- BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA The must-attend event for mobile developers. Connect with experts. Get tools for creating Super Apps. See the latest technologies. Sessions, hands-on labs, demos & much more. Register early & save! http://p.sf.net/sfu/rim-blackberry-1___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [PATCH] mutex lock is not released in error cases in eina_share_common functions
On Wed, Aug 3, 2011 at 1:24 PM, Myungjae Lee wrote: > Hello, all. > > In error cases, such as node is NULL in eina_share_common_del function mutex > lock is not released when the function returns and this can cause infinite > loop. > > Please review this patch and apply it if it is acceptable. Thanks, patch in. -- Cedric BAIL -- BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA The must-attend event for mobile developers. Connect with experts. Get tools for creating Super Apps. See the latest technologies. Sessions, hands-on labs, demos & much more. Register early & save! http://p.sf.net/sfu/rim-blackberry-1 ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [patch] elm_genlist - bugfix evas_object_del at selected callback
I know that apis but I don't know how much it's useful. Thanks And I attached refined version of this patch. > -Original Message- > From: Carsten Haitzler (The Rasterman) [mailto:ras...@rasterman.com] > Sent: Wednesday, August 03, 2011 2:41 PM > To: Enlightenment developer list > Cc: Hyoyoung Chang > Subject: Re: [E-devel] [patch] elm_genlist - bugfix evas_object_del at > selected callback > > On Tue, 02 Aug 2011 19:06:21 +0900 Hyoyoung Chang > > said: > > > Dear developers. > > > > This patch is about elm_genlist. > > When a user delete genlist object at selected callback, > > Genlist don't proper handle it. > > Before genlist clearing, genlist delete its widget data. > > So sometimes, it's crashed. > > > > I made two point diffs > > 1. add genlist clearning at _del_hook > > 2. checking at _item_select, whether it's deleted or not. > > ok. is ee what you're doing. yes - it could be freed if cb deleted the obj. > kind of nasty to handle. this is one way to handle it. the other may be to > evas_object_ref() and unref() :) it is nicer and cleaner. for now your > patch goes in... but look at the object ref/unref. :) the side effect is > that > the object deletion gets delayed). > > > -- > - Codito, ergo sum - "I code, therefore I am" -- > The Rasterman (Carsten Haitzler)ras...@rasterman.com Index: src/lib/elm_genlist.c === --- src/lib/elm_genlist.c (리ë¹ì 62078) +++ src/lib/elm_genlist.c (ìì ì¬ë³¸) @@ -540,12 +540,6 @@ if (wd->multi_timer) ecore_timer_del(wd->multi_timer); if (wd->mode_type) eina_stringshare_del(wd->mode_type); if (wd->scr_hold_timer) ecore_timer_del(wd->scr_hold_timer); - if (wd->walking > 0) - { -wd->walking = 0; -elm_genlist_clear(obj); - } - free(wd); } @@ -833,16 +827,10 @@ it->selected = EINA_TRUE; it->wd->selected = eina_list_append(it->wd->selected, it); call: + evas_object_ref(it->base.widget); it->walking++; it->wd->walking++; - if (it->func.func) - { -Evas_Object *baseobj = it->base.widget; -const char *objtype = NULL; -it->func.func((void *)it->func.data, it->base.widget, it); -objtype = evas_object_type_get(baseobj); -if ((!objtype) || (!strcmp(objtype,""))) return; - } + if (it->func.func) it->func.func((void *)it->func.data, it->base.widget, it); if (!it->delete_me) evas_object_smart_callback_call(it->base.widget, SIG_SELECTED, it); it->walking--; @@ -857,6 +845,7 @@ } } it->wd->last_selected_item = it; + evas_object_unref(it->base.widget); } static void -- BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA The must-attend event for mobile developers. Connect with experts. Get tools for creating Super Apps. See the latest technologies. Sessions, hands-on labs, demos & much more. Register early & save! http://p.sf.net/sfu/rim-blackberry-1___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
[E-devel] [patch] elm_widget - elm_widget_type_unregister
Dear developers. This patch is adding a api to elm_widget. In elm_widget, there is an api to register widget type to elementary's own list. However it doesn't provide unregister api. So I made this patch. Most of case, it's not needed. But in some case, it's useful. (such as elm objects in DSO, if a DSO unloaded, registered widtype is invalidated) Thank you Index: src/lib/elm_widget.c === --- src/lib/elm_widget.c(리ë¹ì 62078) +++ src/lib/elm_widget.c(ìì ì¬ë³¸) @@ -411,6 +411,18 @@ widtypes = eina_list_append(widtypes, (void *)ptr); } +/** + * @defgroup Widget Widget + * + * @internal + * Disposed api for making widgets + */ +EAPI void +elm_widget_type_unregister(const char **ptr) +{ + widtypes = eina_list_remove(widtypes, (void *)ptr); +} + EAPI Eina_Bool elm_widget_api_check(int ver) { Index: src/lib/elm_widget.h === --- src/lib/elm_widget.h(리ë¹ì 62078) +++ src/lib/elm_widget.h(ìì ì¬ë³¸) @@ -324,6 +324,7 @@ EAPI int elm_widget_drag_child_locked_y_get(const Evas_Object *obj); EAPI Eina_Boolelm_widget_theme_object_set(Evas_Object *obj, Evas_Object *edj, const char *wname, const char *welement, const char *wstyle); EAPI void elm_widget_type_register(const char **ptr); +EAPI void elm_widget_type_unregister(const char **ptr); EAPI Eina_Boolelm_widget_type_check(const Evas_Object *obj, const char *type); EAPI Eina_List *elm_widget_stringlist_get(const char *str); EAPI void elm_widget_stringlist_free(Eina_List *list); -- BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA The must-attend event for mobile developers. Connect with experts. Get tools for creating Super Apps. See the latest technologies. Sessions, hands-on labs, demos & much more. Register early & save! http://p.sf.net/sfu/rim-blackberry-1___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel
Re: [E-devel] [patch] elm_genlist - bugfix evas_object_del at selected callback
On Thu, 04 Aug 2011 14:46:23 +0900 Hyoyoung Chang said: well evas_object_ref() and unref() keep and object from being deleted until all the refs have been removed, so it avoids the deletion problem there. you can do ref at start of func and unref at every exit point meaning that obj will delay deletion until the last unref. :) > I know that apis but I don't know how much it's useful. > Thanks > > And I attached refined version of this patch. > > > -Original Message- > > From: Carsten Haitzler (The Rasterman) [mailto:ras...@rasterman.com] > > Sent: Wednesday, August 03, 2011 2:41 PM > > To: Enlightenment developer list > > Cc: Hyoyoung Chang > > Subject: Re: [E-devel] [patch] elm_genlist - bugfix evas_object_del at > > selected callback > > > > On Tue, 02 Aug 2011 19:06:21 +0900 Hyoyoung Chang > > > > said: > > > > > Dear developers. > > > > > > This patch is about elm_genlist. > > > When a user delete genlist object at selected callback, > > > Genlist don't proper handle it. > > > Before genlist clearing, genlist delete its widget data. > > > So sometimes, it's crashed. > > > > > > I made two point diffs > > > 1. add genlist clearning at _del_hook > > > 2. checking at _item_select, whether it's deleted or not. > > > > ok. is ee what you're doing. yes - it could be freed if cb deleted the > obj. > > kind of nasty to handle. this is one way to handle it. the other may be to > > evas_object_ref() and unref() :) it is nicer and cleaner. for now your > > patch goes in... but look at the object ref/unref. :) the side effect is > > that > > the object deletion gets delayed). > > > > > > -- > > - Codito, ergo sum - "I code, therefore I am" -- > > The Rasterman (Carsten Haitzler)ras...@rasterman.com -- - Codito, ergo sum - "I code, therefore I am" -- The Rasterman (Carsten Haitzler)ras...@rasterman.com -- BlackBerry® DevCon Americas, Oct. 18-20, San Francisco, CA The must-attend event for mobile developers. Connect with experts. Get tools for creating Super Apps. See the latest technologies. Sessions, hands-on labs, demos & much more. Register early & save! http://p.sf.net/sfu/rim-blackberry-1 ___ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel