Author: Armin Rigo <ar...@tunes.org> 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 pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit