Author: Armin Rigo <ar...@tunes.org>
Branch: cpyext-gc-support-2
Changeset: r82268:fbcb51a49880
Date: 2016-02-15 17:30 +0100
http://bitbucket.org/pypy/pypy/changeset/fbcb51a49880/

Log:    Fix for test_typeobject.py:test_mp_ass_subscript

diff --git a/pypy/module/cpyext/pyobject.py b/pypy/module/cpyext/pyobject.py
--- a/pypy/module/cpyext/pyobject.py
+++ b/pypy/module/cpyext/pyobject.py
@@ -47,6 +47,7 @@
             size = rffi.sizeof(self.basestruct)
         if itemcount:
             size += itemcount * pytype.c_tp_itemsize
+        assert size >= rffi.sizeof(PyObject.TO)
         buf = lltype.malloc(rffi.VOIDP.TO, size,
                             flavor='raw', zero=True)
         pyobj = rffi.cast(PyObject, buf)
diff --git a/pypy/module/cpyext/typeobject.py b/pypy/module/cpyext/typeobject.py
--- a/pypy/module/cpyext/typeobject.py
+++ b/pypy/module/cpyext/typeobject.py
@@ -235,6 +235,9 @@
 
 def inherit_special(space, pto, base_pto):
     # XXX missing: copy basicsize and flags in a magical way
+    # (minimally, if tp_basicsize is zero we copy it from the base)
+    if not pto.c_tp_basicsize:
+        pto.c_tp_basicsize = base_pto.c_tp_basicsize
     flags = rffi.cast(lltype.Signed, pto.c_tp_flags)
     base_object_pyo = make_ref(space, space.w_object)
     base_object_pto = rffi.cast(PyTypeObjectPtr, base_object_pyo)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to