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