On Thu, 14 Feb 2013 13:05:32 +0000 Michael Blumenkrantz <michael.blumenkra...@gmail.com> said:
> I don't even want to know what you're doing that you'd want to hide bugs > like this i was seeing some stringshare issues with bd->borderneame. a quick look shows all is fine.. an the only thing that may be happening is access to it after an unref from the bd.. where there is still a ptr in the struct until its freed() and many calls happen after this unref. calls higher up all go null out strings/fields.. but later down they done.. so its more consistent now anyway. :) > On Thu, Feb 14, 2013 at 1:02 PM, Enlightenment SVN < > no-re...@enlightenment.org> wrote: > > > Log: > > paranoia - set thigns we free to nullin case a side-effect of a later > > call calls some callback that somehow accesses the bd we are > > freeing... :) > > > > > > > > Author: raster > > Date: 2013-02-14 05:02:56 -0800 (Thu, 14 Feb 2013) > > New Revision: 83892 > > Trac: http://trac.enlightenment.org/e/changeset/83892 > > > > Modified: > > trunk/e/src/bin/e_border.c > > > > Modified: trunk/e/src/bin/e_border.c > > =================================================================== > > --- trunk/e/src/bin/e_border.c 2013-02-14 12:54:38 UTC (rev 83891) > > +++ trunk/e/src/bin/e_border.c 2013-02-14 13:02:56 UTC (rev 83892) > > @@ -5022,37 +5022,51 @@ > > bd->already_unparented = 1; > > } > > if (bd->group) eina_list_free(bd->group); > > + bd->group = NULL; > > if (bd->transients) eina_list_free(bd->transients); > > + bd->transients = NULL; > > if (bd->stick_desks) eina_list_free(bd->stick_desks); > > + bd->stick_desks = NULL; > > if (bd->client.netwm.icons) > > { > > int i; > > for (i = 0; i < bd->client.netwm.num_icons; i++) > > free(bd->client.netwm.icons[i].data); > > free(bd->client.netwm.icons); > > + bd->client.netwm.icons = NULL; > > } > > free(bd->client.netwm.extra_types); > > + bd->client.netwm.extra_types = NULL; > > if (bd->client.border.name) > > eina_stringshare_del(bd->client.border.name); > > + bd->client.border.name = NULL; > > if (bd->bordername) > > eina_stringshare_del(bd->bordername); > > + bd->bordername = NULL; > > if (bd->client.icccm.name) > > eina_stringshare_del(bd->client.icccm.name); > > + bd->client.icccm.name = NULL; > > if (bd->client.icccm.class) > > { > > - if ((!strcasecmp(bd->client.icccm.class, "vmplayer")) || > > (!strcasecmp(bd->client.icccm.class, "vmware"))) > > + if ((!strcasecmp(bd->client.icccm.class, "vmplayer")) || > > + (!strcasecmp(bd->client.icccm.class, "vmware"))) > > e_bindings_mapping_change_enable(EINA_TRUE); > > eina_stringshare_del(bd->client.icccm.class); > > + bd->client.icccm.class = NULL; > > } > > if (bd->client.icccm.title) > > eina_stringshare_del(bd->client.icccm.title); > > + bd->client.icccm.title = NULL; > > if (bd->client.icccm.icon_name) > > eina_stringshare_del(bd->client.icccm.icon_name); > > + bd->client.icccm.icon_name = NULL; > > if (bd->client.icccm.machine) > > eina_stringshare_del(bd->client.icccm.machine); > > + bd->client.icccm.machine = NULL; > > if (bd->client.icccm.window_role) > > eina_stringshare_del(bd->client.icccm.window_role); > > - > > + bd->client.icccm.window_role = NULL; > > + > > if ((bd->client.icccm.command.argc > 0) && > > (bd->client.icccm.command.argv)) > > { > > int i; > > @@ -5060,24 +5074,36 @@ > > for (i = 0; i < bd->client.icccm.command.argc; i++) > > free(bd->client.icccm.command.argv[i]); > > free(bd->client.icccm.command.argv); > > + bd->client.icccm.command.argv = NULL; > > } > > if (bd->client.netwm.name) > > eina_stringshare_del(bd->client.netwm.name); > > + bd->client.netwm.name = NULL; > > if (bd->client.netwm.icon_name) > > eina_stringshare_del(bd->client.netwm.icon_name); > > + bd->client.netwm.icon_name = NULL; > > e_object_del(E_OBJECT(bd->shape)); > > + bd->shape = NULL; > > if (bd->internal_icon) eina_stringshare_del(bd->internal_icon); > > + bd->internal_icon = NULL; > > if (bd->internal_icon_key) eina_stringshare_del(bd->internal_icon_key); > > + bd->internal_icon_key = NULL; > > if (bd->icon_object) evas_object_del(bd->icon_object); > > + bd->icon_object = NULL; > > evas_object_del(bd->bg_object); > > + bd->bg_object = NULL; > > e_canvas_del(bd->bg_ecore_evas); > > + bd->bg_ecore_evas = NULL; > > ecore_evas_free(bd->bg_ecore_evas); > > + bd->bg_ecore_evas = NULL; > > ecore_x_window_free(bd->client.shell_win); > > + bd->client.shell_win = 0; > > e_focus_setdown(bd); > > e_bindings_mouse_ungrab(E_BINDING_CONTEXT_WINDOW, bd->win); > > e_bindings_wheel_ungrab(E_BINDING_CONTEXT_WINDOW, bd->win); > > ecore_x_window_free(bd->win); > > - > > + bd->win = 0; > > + > > eina_hash_del(borders_hash, e_util_winid_str_get(bd->client.win), bd); > > eina_hash_del(borders_hash, e_util_winid_str_get(bd->bg_win), bd); > > eina_hash_del(borders_hash, e_util_winid_str_get(bd->win), bd); > > > > > > > > ------------------------------------------------------------------------------ > > Free Next-Gen Firewall Hardware Offer > > Buy your Sophos next-gen firewall before the end March 2013 > > and get the hardware for free! Learn more. > > http://p.sf.net/sfu/sophos-d2d-feb > > _______________________________________________ > > enlightenment-svn mailing list > > enlightenment-...@lists.sourceforge.net > > https://lists.sourceforge.net/lists/listinfo/enlightenment-svn > > > ------------------------------------------------------------------------------ > Free Next-Gen Firewall Hardware Offer > Buy your Sophos next-gen firewall before the end March 2013 > and get the hardware for free! Learn more. > http://p.sf.net/sfu/sophos-d2d-feb > _______________________________________________ > 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 ------------------------------------------------------------------------------ Free Next-Gen Firewall Hardware Offer Buy your Sophos next-gen firewall before the end March 2013 and get the hardware for free! Learn more. http://p.sf.net/sfu/sophos-d2d-feb _______________________________________________ enlightenment-devel mailing list enlightenment-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-devel