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

Reply via email to