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_main.c Log Message: werd! found the over-ref. borders begin created before the border system initted which mean events generated were of the wrogn type (0) which meant they were thrown out which meant the ref nevert got its macthing unref called.... :) =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_border.c,v retrieving revision 1.70 retrieving revision 1.71 diff -u -3 -r1.70 -r1.71 --- e_border.c 13 Jan 2005 14:24:24 -0000 1.70 +++ e_border.c 14 Jan 2005 14:01:06 -0000 1.71 @@ -282,6 +282,8 @@ ev = calloc(1, sizeof(E_Event_Border_Add)); ev->border = bd; + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); ecore_event_add(E_EVENT_BORDER_ADD, ev, _e_border_event_border_add_free, NULL); return bd; @@ -301,6 +303,8 @@ ev = calloc(1, sizeof(E_Event_Border_Desk_Set)); ev->border = bd; + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); ev->desk = desk; e_object_ref(E_OBJECT(desk)); @@ -323,6 +327,8 @@ ev = calloc(1, sizeof(E_Event_Border_Show)); ev->border = bd; + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); ecore_event_add(E_EVENT_BORDER_SHOW, ev, _e_border_event_border_show_free, NULL); } @@ -349,6 +355,8 @@ ev = calloc(1, sizeof(E_Event_Border_Hide)); ev->border = bd; + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); ecore_event_add(E_EVENT_BORDER_HIDE, ev, _e_border_event_border_hide_free, NULL); } @@ -383,6 +391,8 @@ _e_border_zone_update(bd); ev = calloc(1, sizeof(E_Event_Border_Move)); ev->border = bd; + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); ecore_event_add(E_EVENT_BORDER_MOVE, ev, _e_border_event_border_move_free, NULL); } @@ -418,6 +428,8 @@ _e_border_zone_update(bd); ev = calloc(1, sizeof(E_Event_Border_Resize)); ev->border = bd; + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL); } @@ -461,11 +473,15 @@ _e_border_zone_update(bd); mev = calloc(1, sizeof(E_Event_Border_Move)); mev->border = bd; + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); 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; + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); ecore_event_add(E_EVENT_BORDER_RESIZE, rev, _e_border_event_border_resize_free, NULL); } @@ -633,6 +649,8 @@ ev = calloc(1, sizeof(E_Event_Border_Resize)); ev->border = bd; + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL); } @@ -709,6 +727,8 @@ ev = calloc(1, sizeof(E_Event_Border_Resize)); ev->border = bd; + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); ecore_event_add(E_EVENT_BORDER_RESIZE, ev, _e_border_event_border_resize_free, NULL); } @@ -901,6 +921,8 @@ ev = calloc(1, sizeof(E_Event_Border_Remove)); ev->border = bd; + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); ecore_event_add(E_EVENT_BORDER_REMOVE, ev, _e_border_event_border_remove_free, NULL); } @@ -2834,7 +2856,7 @@ static void _e_border_event_border_move_free(void *data, void *ev) { - E_Event_Border_Resize *e; + E_Event_Border_Move *e; e = ev; e_object_unref(E_OBJECT(e->border)); @@ -2854,7 +2876,7 @@ static void _e_border_event_border_remove_free(void *data, void *ev) { - E_Event_Border_Resize *e; + E_Event_Border_Remove *e; e = ev; e_object_unref(E_OBJECT(e->border)); @@ -2874,7 +2896,7 @@ static void _e_border_event_border_hide_free(void *data, void *ev) { - E_Event_Border_Show *e; + E_Event_Border_Hide *e; e = ev; e_object_unref(E_OBJECT(e->border)); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_int_menus.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -3 -r1.31 -r1.32 --- e_int_menus.c 12 Jan 2005 13:59:01 -0000 1.31 +++ e_int_menus.c 14 Jan 2005 14:01:07 -0000 1.32 @@ -438,6 +438,8 @@ e_menu_item_check_set(mi, 1); e_menu_item_label_set(mi, bd->client.icccm.title); /* ref the border as we implicitly ref it in the callback */ + /* SUSPICION: does the unref for this actually sometimes not get */ + /* called? coudl this be the dangling borders issue? */ e_object_ref(E_OBJECT(bd)); e_menu_item_callback_set(mi, _e_int_menus_clients_item_cb, bd); if (!bd->iconic) e_menu_item_toggle_set(mi, 1); =================================================================== RCS file: /cvsroot/enlightenment/e17/apps/e/src/bin/e_main.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -3 -r1.25 -r1.26 --- e_main.c 13 Jan 2005 07:19:03 -0000 1.25 +++ e_main.c 14 Jan 2005 14:01:08 -0000 1.26 @@ -225,27 +225,6 @@ _e_main_shutdown(-1); } _e_main_shutdown_push(_e_main_screens_shutdown); - /* init global atoms */ - if (!e_atoms_init()) - { - e_error_message_show("Enlightenment cannot set up atoms system."); - _e_main_shutdown(-1); - } - _e_main_shutdown_push(e_atoms_shutdown); - /* init focus system */ - if (!e_focus_init()) - { - e_error_message_show("Enlightenment cannot set up its focus system."); - _e_main_shutdown(-1); - } - _e_main_shutdown_push(e_focus_shutdown); - /* init border system */ - if (!e_border_init()) - { - e_error_message_show("Enlightenment cannot set up its border system."); - _e_main_shutdown(-1); - } - _e_main_shutdown_push(e_border_shutdown); /* init app system */ if (!e_app_init()) { @@ -496,6 +475,7 @@ Ecore_X_Window *roots; int num, i; + if (!e_atoms_init()) return 0; if (!e_manager_init()) return 0; if (!e_container_init()) return 0; if (!e_zone_init()) return 0; @@ -509,6 +489,8 @@ num); return 0; } + if (!e_focus_init()) return 0; + if (!e_border_init()) return 0; for (i = 0; i < num; i++) { E_Manager *man; @@ -567,10 +549,13 @@ static int _e_main_screens_shutdown(void) { + e_border_shutdown(); + e_focus_shutdown(); e_desk_shutdown(); e_zone_shutdown(); e_container_shutdown(); e_manager_shutdown(); + e_atoms_shutdown(); return 1; } ------------------------------------------------------- The SF.Net email is sponsored by: Beat the post-holiday blues Get a FREE limited edition SourceForge.net t-shirt from ThinkGeek. It's fun and FREE -- well, almost....http://www.thinkgeek.com/sfshirt _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs