Author: Armin Rigo <[email protected]>
Branch: 
Changeset: r90616:d920a7a7a107
Date: 2017-03-10 08:34 +0100
http://bitbucket.org/pypy/pypy/changeset/d920a7a7a107/

Log:    cffi issue: unsure why, but ffi.new() didn't invoke
        add_memory_pressure.

diff --git a/pypy/module/_cffi_backend/allocator.py 
b/pypy/module/_cffi_backend/allocator.py
--- a/pypy/module/_cffi_backend/allocator.py
+++ b/pypy/module/_cffi_backend/allocator.py
@@ -4,6 +4,7 @@
 from pypy.interpreter.gateway import interp2app, unwrap_spec, WrappedDefault
 
 from rpython.rtyper.lltypesystem import lltype, rffi
+from rpython.rlib import rgc
 
 
 class W_Allocator(W_Root):
@@ -20,10 +21,12 @@
         if self.w_alloc is None:
             if self.should_clear_after_alloc:
                 ptr = lltype.malloc(rffi.CCHARP.TO, datasize,
-                                    flavor='raw', zero=True)
+                                    flavor='raw', zero=True,
+                                    add_memory_pressure=True)
             else:
                 ptr = lltype.malloc(rffi.CCHARP.TO, datasize,
-                                    flavor='raw', zero=False)
+                                    flavor='raw', zero=False,
+                                    add_memory_pressure=True)
             return cdataobj.W_CDataNewStd(space, ptr, ctype, length)
         else:
             w_raw_cdata = space.call_function(self.w_alloc,
@@ -50,6 +53,7 @@
             if self.w_free is not None:
                 res.w_free = self.w_free
                 res.register_finalizer(space)
+            rgc.add_memory_pressure(datasize)
             return res
 
     @unwrap_spec(w_init=WrappedDefault(None))
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to