Author: Antonio Cuni <[email protected]>
Branch: ffistruct
Changeset: r49036:af3519406a19
Date: 2011-11-09 17:49 +0100
http://bitbucket.org/pypy/pypy/changeset/af3519406a19/

Log:    make sure that these two finalizers are lightweight

diff --git a/pypy/module/_ffi/interp_struct.py 
b/pypy/module/_ffi/interp_struct.py
--- a/pypy/module/_ffi/interp_struct.py
+++ b/pypy/module/_ffi/interp_struct.py
@@ -2,6 +2,7 @@
 from pypy.rlib import clibffi
 from pypy.rlib import libffi
 from pypy.rlib import jit
+from pypy.rlib.rgc import must_be_light_finalizer
 from pypy.rlib.rarithmetic import r_uint, r_ulonglong
 from pypy.interpreter.baseobjspace import Wrappable
 from pypy.interpreter.typedef import TypeDef, interp_attrproperty
@@ -59,6 +60,7 @@
 
         return w_field.w_ffitype, w_field.offset
 
+    @must_be_light_finalizer
     def __del__(self):
         if self.ffistruct:
             lltype.free(self.ffistruct, flavor='raw')
@@ -118,8 +120,8 @@
         self.rawmem = lltype.malloc(rffi.VOIDP.TO, size, flavor='raw',
                                     zero=True, add_memory_pressure=True)
 
+    @must_be_light_finalizer
     def __del__(self):
-        # XXX: check whether I can turn this into a lightweight destructor
         if self.rawmem:
             lltype.free(self.rawmem, flavor='raw')
             self.rawmem = lltype.nullptr(rffi.VOIDP.TO)
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to