----- "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

Reply via email to