Enlightenment CVS committal Author : raster Project : e17 Module : apps/e
Dir : e17/apps/e/src/bin Modified Files: e_config_dialog.c e_configure.c e_utils.c e_utils.h Log Message: fix valgrind issues on frees of evas screwing deletions of widgets - this might fix a slew of bugs on dialog close. =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_config_dialog.c,v retrieving revision 1.34 retrieving revision 1.35 diff -u -3 -r1.34 -r1.35 --- e_config_dialog.c 30 Nov 2006 10:01:02 -0000 1.34 +++ e_config_dialog.c 4 May 2007 15:55:24 -0000 1.35 @@ -309,7 +309,8 @@ if (cfd->view->advanced.apply_cfdata) ok = cfd->view->advanced.apply_cfdata(cfd, cfd->cfdata); } - if (ok) e_object_del(E_OBJECT(cfd)); + if (ok) + e_util_defer_object_del(E_OBJECT(cfd)); } static void @@ -388,5 +389,5 @@ ok = cfd->view->close_cfdata(cfd, cfd->cfdata); if (ok) - e_object_del(E_OBJECT(dia)); + e_util_defer_object_del(E_OBJECT(cfd)); } =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_configure.c,v retrieving revision 1.96 retrieving revision 1.97 diff -u -3 -r1.96 -r1.97 --- e_configure.c 14 Apr 2007 18:21:26 -0000 1.96 +++ e_configure.c 4 May 2007 15:55:24 -0000 1.97 @@ -202,7 +202,7 @@ eco = data; if (!eco) return; - e_object_del(E_OBJECT(eco)); + e_util_defer_object_del(E_OBJECT(eco)); } static E_Configure_Category * =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_utils.c,v retrieving revision 1.68 retrieving revision 1.69 diff -u -3 -r1.68 -r1.69 --- e_utils.c 13 Apr 2007 15:59:28 -0000 1.68 +++ e_utils.c 4 May 2007 15:55:24 -0000 1.69 @@ -27,6 +27,7 @@ }; /* local subsystem functions */ +static int _e_util_cb_delayed_del(void *data); static void _e_util_container_fake_mouse_up_cb(void *data); static int _e_util_wakeup_cb(void *data); @@ -906,7 +907,20 @@ return 1; } +EAPI void +e_util_defer_object_del(E_Object *obj) +{ + ecore_idle_enterer_add(_e_util_cb_delayed_del, obj); +} + /* local subsystem functions */ +static int +_e_util_cb_delayed_del(void *data) +{ + e_object_del(E_OBJECT(data)); + return 0; +} + static void _e_util_container_fake_mouse_up_cb(void *data) { =================================================================== RCS file: /cvs/e/e17/apps/e/src/bin/e_utils.h,v retrieving revision 1.38 retrieving revision 1.39 diff -u -3 -r1.38 -r1.39 --- e_utils.h 13 Apr 2007 15:59:28 -0000 1.38 +++ e_utils.h 4 May 2007 15:55:24 -0000 1.39 @@ -52,6 +52,7 @@ EAPI Evas_Object *e_util_icon_theme_icon_add(const char *icon_name, const char *size, Evas *evas); EAPI void e_util_desktop_menu_item_icon_add(Efreet_Desktop *desktop, const char *size, E_Menu_Item *mi); EAPI int e_util_dir_check(const char *dir); - +EAPI void e_util_defer_object_del(E_Object *obj); + #endif #endif ------------------------------------------------------------------------- This SF.net email is sponsored by DB2 Express Download DB2 Express C - the FREE version of DB2 express and take control of your XML. No limits. Just data. Click to get it now. http://sourceforge.net/powerbar/db2/ _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs