[pypy-svn] r73437 - pypy/branch/cpython-extension/pypy/module/cpyext
xoraxax at codespeak.net
xoraxax at codespeak.net
Tue Apr 6 03:14:21 CEST 2010
Author: xoraxax
Date: Tue Apr 6 03:14:19 2010
New Revision: 73437
Modified:
pypy/branch/cpython-extension/pypy/module/cpyext/pyobject.py
Log:
Correctly calculate allocation size.
Modified: pypy/branch/cpython-extension/pypy/module/cpyext/pyobject.py
==============================================================================
--- pypy/branch/cpython-extension/pypy/module/cpyext/pyobject.py (original)
+++ pypy/branch/cpython-extension/pypy/module/cpyext/pyobject.py Tue Apr 6 03:14:19 2010
@@ -30,7 +30,7 @@
print >>sys.stderr
-def make_ref(space, w_obj, borrowed=False, steal=False):
+def make_ref(space, w_obj, borrowed=False, steal=False, items=0):
from pypy.module.cpyext.typeobject import allocate_type_obj,\
W_PyCTypeObject, PyOLifeline
from pypy.module.cpyext.pycobject import W_PyCObject, PyCObject
@@ -59,7 +59,7 @@
# Don't increase refcount for non-heaptypes
if not rffi.cast(lltype.Signed, pto.c_tp_flags) & Py_TPFLAGS_HEAPTYPE:
Py_DecRef(space, w_type_pyo)
- basicsize = pto.c_tp_basicsize
+ basicsize = pto.c_tp_basicsize + items * pto.c_tp_itemsize
py_obj_pad = lltype.malloc(rffi.VOIDP.TO, basicsize,
flavor="raw", zero=True)
py_obj = rffi.cast(PyObject, py_obj_pad)
More information about the Pypy-commit
mailing list