Enlightenment CVS committal

Author  : barbieri
Project : e17
Module  : proto/python-efl

Dir     : e17/proto/python-efl/python-evas/evas


Modified Files:
        evas.c_evas_object.pxi 


Log Message:
Improve object (wrapper) deletion.

===================================================================
RCS file: /cvs/e/e17/proto/python-efl/python-evas/evas/evas.c_evas_object.pxi,v
retrieving revision 1.14
retrieving revision 1.15
diff -u -3 -r1.14 -r1.15
--- evas.c_evas_object.pxi      21 Sep 2007 23:56:05 -0000      1.14
+++ evas.c_evas_object.pxi      25 Sep 2007 13:40:15 -0000      1.15
@@ -28,8 +28,6 @@
 cdef void obj_free_cb(void *data, Evas *e, Evas_Object *obj, void *event_info):
     cdef Object self
     self = <Object>data
-    self.obj = NULL
-    self._evas = <Canvas>None
 
     lst = self._callbacks[EVAS_CALLBACK_FREE]
     if lst is not None:
@@ -39,8 +37,7 @@
             except Exception, e:
                 traceback.print_exc()
 
-    _free_wrapper_resources(self)
-    python.Py_DECREF(self)
+    self._unset_obj()
 
 
 cdef _register_decorated_callbacks(obj):
@@ -128,16 +125,19 @@
 
     cdef int _unset_obj(self) except 0:
         assert self.obj != NULL, "Object must wrap something"
-        assert evas_object_data_del(self.obj, "python-evas") == \
-               <void *>self, "Object wrapped should refer to self"
         _unregister_callbacks(self)
         _free_wrapper_resources(self)
+        assert evas_object_data_del(self.obj, "python-evas") == <void*>self, \
+               "Evas_Object has incorrect python-evas data"
         self.obj = NULL
+        self._evas = <Canvas>None
         python.Py_DECREF(self)
         return 1
 
     cdef int _set_obj(self, Evas_Object *obj) except 0:
         assert self.obj == NULL, "Object must be clean"
+        assert evas_object_data_get(obj, "python-evas") == NULL, \
+               "Evas_Object must not wrapped by something else!"
         self.obj = obj
         python.Py_INCREF(self)
         evas_object_data_set(obj, "python-evas", <void *>self)



-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2005.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
enlightenment-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs

Reply via email to