Author: Armin Rigo <[email protected]>
Branch:
Changeset: r90668:5fd8b95992bb
Date: 2017-03-14 08:35 +0100
http://bitbucket.org/pypy/pypy/changeset/5fd8b95992bb/
Log: Fix (test by running "py.test -A" on pypy enough times until it
crashes, with options like MALLOC_CHECK_=7 to detect writes out of
bound)
diff --git a/pypy/module/cpyext/test/test_tupleobject.py
b/pypy/module/cpyext/test/test_tupleobject.py
--- a/pypy/module/cpyext/test/test_tupleobject.py
+++ b/pypy/module/cpyext/test/test_tupleobject.py
@@ -154,5 +154,10 @@
def test_tuple_subclass(self):
module = self.import_module(name='foo')
- a = module.TupleLike([1, 2, 3])
+ a = module.TupleLike(range(100, 400, 100))
assert module.is_TupleLike(a) == 1
+ assert isinstance(a, tuple)
+ assert issubclass(type(a), tuple)
+ assert list(a) == range(100, 400, 100)
+ assert list(a) == range(100, 400, 100)
+ assert list(a) == range(100, 400, 100)
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
@@ -418,8 +418,8 @@
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:
+ # (minimally, if tp_basicsize is zero or too low, we copy it from the base)
+ if pto.c_tp_basicsize < base_pto.c_tp_basicsize:
pto.c_tp_basicsize = base_pto.c_tp_basicsize
if pto.c_tp_itemsize < base_pto.c_tp_itemsize:
pto.c_tp_itemsize = base_pto.c_tp_itemsize
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit