Enlightenment CVS committal

Author  : raster
Project : e17
Module  : apps/e

Dir     : e17/apps/e/src/bin


Modified Files:
        e_border.c e_int_menus.c e_object.c e_object.h 


Log Message:


object have breadcrumbs - this is a go at debugging info to help track that
dangling reference. its really intended not to remain permenantly - so one
day we'll remove it...

===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.286
retrieving revision 1.287
diff -u -3 -r1.286 -r1.287
--- e_border.c  24 Jun 2005 09:26:44 -0000      1.286
+++ e_border.c  25 Jun 2005 06:54:22 -0000      1.287
@@ -491,6 +491,7 @@
    ev = calloc(1, sizeof(E_Event_Border_Zone_Set));
    ev->border = bd;
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_zone_set_event");
    ev->zone = zone;
    e_object_ref(E_OBJECT(zone));
    ecore_event_add(E_EVENT_BORDER_ZONE_SET, ev, 
_e_border_event_border_zone_set_free, NULL);
@@ -516,6 +517,7 @@
    ev = calloc(1, sizeof(E_Event_Border_Desk_Set));
    ev->border = bd;
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_desk_set_event");
    ev->desk = desk;
    e_object_ref(E_OBJECT(desk));
    ecore_event_add(E_EVENT_BORDER_DESK_SET, ev, 
_e_border_event_border_desk_set_free, NULL);
@@ -544,6 +546,7 @@
    ev = calloc(1, sizeof(E_Event_Border_Show));
    ev->border = bd;
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_show_event");
    ecore_event_add(E_EVENT_BORDER_SHOW, ev, _e_border_event_border_show_free, 
NULL);
 }
 
@@ -595,6 +598,7 @@
        ev = calloc(1, sizeof(E_Event_Border_Hide));
        ev->border = bd;
        e_object_ref(E_OBJECT(bd));
+       e_object_breadcrumb_add(E_OBJECT(bd), "border_hide_event");
        ecore_event_add(E_EVENT_BORDER_HIDE, ev, 
_e_border_event_border_hide_free, NULL);
      }
 }
@@ -643,6 +647,7 @@
    ev = calloc(1, sizeof(E_Event_Border_Move));
    ev->border = bd;
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event");
    ecore_event_add(E_EVENT_BORDER_MOVE, ev, _e_border_event_border_move_free, 
NULL);
 }
 
@@ -688,6 +693,7 @@
    ev = calloc(1, sizeof(E_Event_Border_Resize));
    ev->border = bd;
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
    ecore_event_add(E_EVENT_BORDER_RESIZE, ev, 
_e_border_event_border_resize_free, NULL);
 }
 
@@ -742,11 +748,13 @@
    mev = calloc(1, sizeof(E_Event_Border_Move));
    mev->border = bd;
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_move_event");
    ecore_event_add(E_EVENT_BORDER_MOVE, mev, _e_border_event_border_move_free, 
NULL);
 
    rev = calloc(1, sizeof(E_Event_Border_Resize));
    rev->border = bd;
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
    ecore_event_add(E_EVENT_BORDER_RESIZE, rev, 
_e_border_event_border_resize_free, NULL);
 }
 
@@ -764,6 +772,7 @@
        ev = calloc(1, sizeof(E_Event_Border_Raise));
        ev->border = bd;
        e_object_ref(E_OBJECT(bd));
+       e_object_breadcrumb_add(E_OBJECT(bd), "border_raise_event");
        ev->above = NULL;
        ecore_event_add(E_EVENT_BORDER_RAISE, ev, 
_e_border_event_border_raise_free, NULL);
      }
@@ -783,6 +792,7 @@
        ev = calloc(1, sizeof(E_Event_Border_Lower));
        ev->border = bd;
        e_object_ref(E_OBJECT(bd));
+       e_object_breadcrumb_add(E_OBJECT(bd), "border_lower_event");
        ev->below = NULL;
        ecore_event_add(E_EVENT_BORDER_LOWER, ev, 
_e_border_event_border_lower_free, NULL);
      }
@@ -802,8 +812,10 @@
        ev = calloc(1, sizeof(E_Event_Border_Raise));
        ev->border = bd;
        e_object_ref(E_OBJECT(bd));
+       e_object_breadcrumb_add(E_OBJECT(bd), "border_raise_event");
        ev->above = above;
        e_object_ref(E_OBJECT(above));
+       e_object_breadcrumb_add(E_OBJECT(above), "border_raise_event.above");
        ecore_event_add(E_EVENT_BORDER_RAISE, ev, 
_e_border_event_border_raise_free, NULL);
      }
 }
@@ -821,8 +833,10 @@
        ev = calloc(1, sizeof(E_Event_Border_Lower));
        ev->border = bd;
        e_object_ref(E_OBJECT(bd));
+       e_object_breadcrumb_add(E_OBJECT(bd), "border_lower_event");
        ev->below = below;
        e_object_ref(E_OBJECT(below));
+       e_object_breadcrumb_add(E_OBJECT(below), "border_lower_event.below");
        ecore_event_add(E_EVENT_BORDER_LOWER, ev, 
_e_border_event_border_lower_free, NULL);
      }
 }
@@ -994,6 +1008,7 @@
             /* The resize is added in the animator when animation complete */
             /* For non-animated, we add it immediately with the new size */
             e_object_ref(E_OBJECT(bd));
+            e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
             ecore_event_add(E_EVENT_BORDER_RESIZE, ev, 
_e_border_event_border_resize_free, NULL);
          }
 
@@ -1082,6 +1097,7 @@
             /* The resize is added in the animator when animation complete */
             /* For non-animated, we add it immediately with the new size */
             e_object_ref(E_OBJECT(bd));
+            e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
             ecore_event_add(E_EVENT_BORDER_RESIZE, ev, 
_e_border_event_border_resize_free, NULL);
          }
 
@@ -1354,6 +1370,7 @@
    ev = E_NEW(E_Event_Border_Iconify, 1);
    ev->border = bd;
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_iconify_event");
    ecore_event_add(E_EVENT_BORDER_ICONIFY, ev, 
_e_border_event_border_iconify_free, NULL);
 }
 
@@ -1382,6 +1399,7 @@
    ev = E_NEW(E_Event_Border_Uniconify, 1);
    ev->border = bd;
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_uniconify_event");
    ecore_event_add(E_EVENT_BORDER_UNICONIFY, ev, 
_e_border_event_border_uniconify_free, NULL);
 
 }
@@ -1401,6 +1419,7 @@
    ev = E_NEW(E_Event_Border_Stick, 1);
    ev->border = bd;
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_stick_event");
    ecore_event_add(E_EVENT_BORDER_STICK, ev, 
_e_border_event_border_stick_free, NULL);
 }
 
@@ -1421,6 +1440,7 @@
    ev = E_NEW(E_Event_Border_Unstick, 1);
    ev->border = bd;
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_unstick_event");
    ecore_event_add(E_EVENT_BORDER_UNSTICK, ev, 
_e_border_event_border_unstick_free, NULL);
 }
 
@@ -1947,6 +1967,7 @@
    printf("%p, %i, \"%s\" [\"%s\" \"%s\"]\n",
          bd, e_object_ref_get(E_OBJECT(bd)), bd->client.icccm.title,
          bd->client.icccm.name, bd->client.icccm.class);
+   e_object_breadcrumb_debug(E_OBJECT(bd));
    printf("---\n");
    return 1;
 }
@@ -1973,6 +1994,7 @@
    /* FIXME Don't ref this during shutdown. And the event is pointless
     * during shutdown.. */
    e_object_ref(E_OBJECT(bd));
+   e_object_breadcrumb_add(E_OBJECT(bd), "border_remove_event");
    ecore_event_add(E_EVENT_BORDER_REMOVE, ev, 
_e_border_event_border_remove_free, NULL);
 }
 
@@ -3761,6 +3783,7 @@
             ev = calloc(1, sizeof(E_Event_Border_Icon_Change));
             ev->border = bd;
             e_object_ref(E_OBJECT(bd));
+            e_object_breadcrumb_add(E_OBJECT(bd), "border_icon_change_event");
             ecore_event_add(E_EVENT_BORDER_ICON_CHANGE, ev,
                             _e_border_event_border_icon_change_free, NULL);
          }
@@ -4088,6 +4111,7 @@
        ev = calloc(1, sizeof(E_Event_Border_Add));
        ev->border = bd;
        e_object_ref(E_OBJECT(bd));
+       e_object_breadcrumb_add(E_OBJECT(bd), "border_add_event");
        ecore_event_add(E_EVENT_BORDER_ADD, ev, 
_e_border_event_border_add_free, NULL);
 
        /* Recreate state */
@@ -4636,6 +4660,7 @@
        ev = calloc(1, sizeof(E_Event_Border_Resize));
        ev->border = bd;
        e_object_ref(E_OBJECT(bd));
+       e_object_breadcrumb_add(E_OBJECT(bd), "border_resize_event");
        ecore_event_add(E_EVENT_BORDER_RESIZE, ev, 
_e_border_event_border_resize_free, NULL);
        return 0;
      }
@@ -5001,6 +5026,7 @@
    E_Event_Border_Resize *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_resize_event");
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
@@ -5011,6 +5037,7 @@
    E_Event_Border_Move *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_move_event");
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
@@ -5021,6 +5048,7 @@
    E_Event_Border_Add *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_add_event");
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
@@ -5031,6 +5059,7 @@
    E_Event_Border_Remove *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_remove_event");
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
@@ -5041,6 +5070,7 @@
    E_Event_Border_Show *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_show_event");
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
@@ -5051,6 +5081,7 @@
    E_Event_Border_Hide *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_hide_event");
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
@@ -5061,6 +5092,7 @@
    E_Event_Border_Iconify *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_iconify_event");
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
@@ -5071,6 +5103,7 @@
    E_Event_Border_Uniconify *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_uniconify_event");
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
@@ -5081,6 +5114,7 @@
    E_Event_Border_Stick *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_stick_event");
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
@@ -5091,6 +5125,7 @@
    E_Event_Border_Unstick *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_unstick_event");
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
@@ -5101,6 +5136,7 @@
    E_Event_Border_Zone_Set *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_zone_set_event");
    e_object_unref(E_OBJECT(e->border));
    e_object_unref(E_OBJECT(e->zone));
    free(e);
@@ -5112,6 +5148,7 @@
    E_Event_Border_Desk_Set *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_desk_set_event");
    e_object_unref(E_OBJECT(e->border));
    e_object_unref(E_OBJECT(e->desk));
    free(e);
@@ -5123,8 +5160,13 @@
    E_Event_Border_Raise *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_raise_event");
    e_object_unref(E_OBJECT(e->border));
-   if (e->above) e_object_unref(E_OBJECT(e->above));
+   if (e->above)
+     {
+       e_object_breadcrumb_del(E_OBJECT(e->above), "border_raise_event.above");
+       e_object_unref(E_OBJECT(e->above));
+     }
    free(e);
 }
 
@@ -5134,8 +5176,13 @@
    E_Event_Border_Lower *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_lower_event");
    e_object_unref(E_OBJECT(e->border));
-   if (e->below) e_object_unref(E_OBJECT(e->below));
+   if (e->below)
+     {
+       e_object_breadcrumb_del(E_OBJECT(e->below), "border_lower_event.below");
+       e_object_unref(E_OBJECT(e->below));
+     }
    free(e);
 }
 
@@ -5145,6 +5192,7 @@
    E_Event_Border_Icon_Change *e;
 
    e = ev;
+   e_object_breadcrumb_del(E_OBJECT(e->border), "border_icon_change_event");
    e_object_unref(E_OBJECT(e->border));
    free(e);
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_menus.c,v
retrieving revision 1.69
retrieving revision 1.70
diff -u -3 -r1.69 -r1.70
--- e_int_menus.c       19 Jun 2005 14:56:21 -0000      1.69
+++ e_int_menus.c       25 Jun 2005 06:54:22 -0000      1.70
@@ -556,6 +556,7 @@
          e_menu_item_label_set(mi, _("No name!!"));
        /* ref the border as we implicitly unref it in the callback */
        e_object_ref(E_OBJECT(bd));
+       e_object_breadcrumb_add(E_OBJECT(bd), "clients_menu");
        e_menu_item_callback_set(mi, _e_int_menus_clients_item_cb, bd);
        if (!bd->iconic) e_menu_item_toggle_set(mi, 1);
        a = e_app_window_name_class_find(bd->client.icccm.name,
@@ -589,6 +590,7 @@
        
        bd = borders->data;
        borders = evas_list_remove_list(borders, borders);
+       e_object_breadcrumb_del(E_OBJECT(bd), "clients_menu");
        e_object_unref(E_OBJECT(bd));
      }
 }
@@ -797,6 +799,7 @@
          e_menu_item_label_set(mi, _("No name!!"));
        /* ref the border as we implicitly unref it in the callback */
        e_object_ref(E_OBJECT(bd));
+       e_object_breadcrumb_add(E_OBJECT(bd), "lost_clients_menu");
        e_menu_item_callback_set(mi, _e_int_menus_lost_clients_item_cb, bd);
        a = e_app_window_name_class_find(bd->client.icccm.name,
                                         bd->client.icccm.class);
@@ -820,6 +823,7 @@
        
        bd = borders->data;
        borders = evas_list_remove_list(borders, borders);
+       e_object_breadcrumb_del(E_OBJECT(bd), "lost_clients_menu");
        e_object_unref(E_OBJECT(bd));
      }
 }
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_object.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -3 -r1.11 -r1.12
--- e_object.c  11 May 2005 13:13:43 -0000      1.11
+++ e_object.c  25 Jun 2005 06:54:22 -0000      1.12
@@ -252,6 +252,39 @@
    obj->del_att_func = func;
 }
 
+void
+e_object_breadcrumb_add(E_Object *obj, char *crumb)
+{
+   E_OBJECT_CHECK(obj);
+   obj->crumbs = evas_list_append(obj->crumbs, strdup(crumb));
+}
+
+void
+e_object_breadcrumb_del(E_Object *obj, char *crumb)
+{
+   Evas_List *l;
+   
+   E_OBJECT_CHECK(obj);
+   for (l = obj->crumbs; l; l = l->next)
+     {
+       if (!strcmp(crumb, l->data))
+         {
+            free(l->data);
+            obj->crumbs = evas_list_remove_list(obj->crumbs, l);
+         }
+     }
+}
+
+void
+e_object_breadcrumb_debug(E_Object *obj)
+{
+   Evas_List *l;
+   
+   E_OBJECT_CHECK(obj);
+   for (l = obj->crumbs; l; l = l->next)
+     printf("CRUMB: %s\n", l->data);
+}
+
 #ifdef OBJECT_PARANOIA_CHECK
 /* local subsystem functions */
 static void
===================================================================
RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_object.h,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -3 -r1.15 -r1.16
--- e_object.h  11 May 2005 13:13:43 -0000      1.15
+++ e_object.h  25 Jun 2005 06:54:22 -0000      1.16
@@ -70,6 +70,7 @@
    void                  (*del_att_func) (void *obj);
    void                   *data;
    unsigned char           deleted : 1;
+   Evas_List              *crumbs;
 };
 
 EAPI void *e_object_alloc               (int size, int type, 
E_Object_Cleanup_Func cleanup_func);
@@ -87,5 +88,9 @@
 EAPI void  e_object_free_attach_func_set(E_Object *obj, void (*func) (void 
*obj));
 EAPI void  e_object_del_attach_func_set (E_Object *obj, void (*func) (void 
*obj));
 
+EAPI void  e_object_breadcrumb_add      (E_Object *obj, char *crumb);
+EAPI void  e_object_breadcrumb_del      (E_Object *obj, char *crumb);
+EAPI void  e_object_breadcrumb_debug    (E_Object *obj);
+
 #endif
 #endif




-------------------------------------------------------
SF.Net email is sponsored by: Discover Easy Linux Migration Strategies
from IBM. Find simple to follow Roadmaps, straightforward articles,
informative Webcasts and more! Get everything you need to get up to
speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to