----- "Christopher Michael" <[EMAIL PROTECTED]> ha scritto:
> It is the proper fix. If we don't want to delete the config then there > > is no need to use _gc_id_del. > > dh Yes, I know...I mean, we really want to keep all the configs for all module ever loaded? It seems to me more a workaround to the fact that id_del doesn't work as expected. If we really don't want to delete the confs then we can also remove the id_del function from the module API... it can cause big-headhance if someone try to use it and it doesn't work!!...I am one of those! Another id-stuff not so clear to me...or maybe a bug ;) In the skel module the new-generated ids seems to restart every time from 0. It didn't take into account other existant instances. Example: the first skel you place get the id 'classname.0' then the second you place get 'classname.1' But if you restart E and place the third instance it get another 'classname.0' that is used yet. Am I wrong? I have used another method to generate a unique id, something like: snprintf(buf, sizeof(buf), "%s.%f", client_class->name, ecore_time_get()); So I get ids like 'modulename.1226243030,874566' and I never get two equal id. What do you think? Thanks Dave > > Dave Andreoli wrote: > > I reply to myself... changed idea :) > > > > I'm not so sure that this is the proper fix, I think we need the > id_del() > > function, it's not so good to keep the config of every module > forever. > > Maybe the real problem is that E should not call id_del() when just > a gc_shutdown() > > is needed.... is there a reason to call id_del on every shoutdown? > > > > Dave > > > > > > > > ----- "Dave Andreoli" <[EMAIL PROTECTED]> ha scritto: > > > >> yes, better now :) > >> Dave > >> > >> ----- "Enlightenment SVN" <[EMAIL PROTECTED]> ha scritto: > >> > >>> Log: > >>> Proper fix for not using _gc_id_del. > >>> > >>> > >>> Author: devilhorns > >>> Date: 2008-11-08 22:50:49 -0800 (Sat, 08 Nov 2008) > >>> New Revision: 37558 > >>> > >>> Modified: > >>> trunk/E-MODULES-EXTRA/skel/src/e_mod_main.c > >>> > >>> Modified: trunk/E-MODULES-EXTRA/skel/src/e_mod_main.c > >>> > =================================================================== > >>> --- trunk/E-MODULES-EXTRA/skel/src/e_mod_main.c 2008-11-09 > 06:09:53 > >>> UTC (rev 37557) > >>> +++ trunk/E-MODULES-EXTRA/skel/src/e_mod_main.c 2008-11-09 > 06:50:49 > >>> UTC (rev 37558) > >>> @@ -7,7 +7,6 @@ > >>> static void _gc_orient(E_Gadcon_Client *gcc, E_Gadcon_Orient > >>> orient); > >>> static char *_gc_label(E_Gadcon_Client_Class *client_class); > >>> static const char *_gc_id_new(E_Gadcon_Client_Class > >> *client_class); > >>> -static void _gc_id_del(E_Gadcon_Client_Class *client_class, > const > >>> char *id); > >>> static Evas_Object *_gc_icon(E_Gadcon_Client_Class > *client_class, > >>> Evas *evas); > >>> > >>> static void _skel_conf_new(void); > >>> @@ -46,7 +45,7 @@ > >>> { > >>> GADCON_CLIENT_CLASS_VERSION, "skel", > >>> {_gc_init, _gc_shutdown, _gc_orient, _gc_label, _gc_icon, > >>> - _gc_id_new, _gc_id_del}, > >>> + _gc_id_new, NULL}, > >>> E_GADCON_CLIENT_STYLE_PLAIN > >>> }; > >>> > >>> @@ -54,7 +53,7 @@ > >>> > >>> /* > >>> * Module Functions > >>> -*/ > >>> + */ > >>> EAPI void * > >>> e_modapi_init(E_Module *m) > >>> { > >>> @@ -73,7 +72,6 @@ > >>> NULL, buf, > >>> e_int_config_skel_module); > >>> > >>> /* Define EET Data Storage */ > >>> - > >>> conf_item_edd = E_CONFIG_DD_NEW("Config_Item", Config_Item); > >>> #undef T > >>> #undef D > >>> @@ -178,12 +176,15 @@ > >>> > >>> /* Grab an item from the list */ > >>> ci = skel_conf->conf_items->data; > >>> + > >>> /* remove it */ > >>> skel_conf->conf_items = > >>> eina_list_remove_list(skel_conf->conf_items, > >>> skel_conf->conf_items); > >>> - /* cleanup stringshares !! ) */ > >>> + > >>> + /* cleanup stringshares */ > >>> if (ci->id) eina_stringshare_del(ci->id); > >>> + > >>> /* keep the planet green */ > >>> E_FREE(ci); > >>> } > >>> @@ -298,26 +299,6 @@ > >>> return ci->id; > >>> } > >>> > >>> -/* gets called when container says remove this item */ > >>> -static void > >>> -_gc_id_del(E_Gadcon_Client_Class *client_class, const char *id) > >>> -{ > >>> -/* yes - don't do this. on shutdown gadgets are deleted and this > >>> means config > >>> - * for them is deleted - that means empty config is saved. keep > >> them > >>> around > >>> - * as if u add a gadget back it can pick up its old config again > >>> - * > >>> - Config_Item *ci = NULL; > >>> - printf("SKEL ID_DEL: [%s]\n", id); > >>> - if (!(ci = _skel_conf_item_get(id))) return; > >>> - > >>> - // cleanup !! > >>> - if (ci->id) eina_stringshare_del(ci->id); > >>> - > >>> - skel_conf->conf_items = > eina_list_remove(skel_conf->conf_items, > >>> ci); > >>> - E_FREE(ci); > >>> - */ > >>> -} > >>> - > >>> static Evas_Object * > >>> _gc_icon(E_Gadcon_Client_Class *client_class, Evas *evas) > >>> { > >>> > >>> > >>> > >> > ------------------------------------------------------------------------- > >>> This SF.Net email is sponsored by the Moblin Your Move > Developer's > >>> challenge > >>> Build the coolest Linux based applications with Moblin SDK & win > >> great > >>> prizes > >>> Grand prize is a trip for two to an Open Source event anywhere in > >> the > >>> world > >>> http://moblin-contest.org/redirect.php?banner_id=100&url=/ > >>> _______________________________________________ > >>> enlightenment-svn mailing list > >>> [EMAIL PROTECTED] > >>> https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > >> > ------------------------------------------------------------------------- > >> This SF.Net email is sponsored by the Moblin Your Move Developer's > >> challenge > >> Build the coolest Linux based applications with Moblin SDK & win > great > >> prizes > >> Grand prize is a trip for two to an Open Source event anywhere in > the > >> world > >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ > >> _______________________________________________ > >> enlightenment-devel mailing list > >> enlightenment-devel@lists.sourceforge.net > >> https://lists.sourceforge.net/lists/listinfo/enlightenment-devel > > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel