[pypy-svn] r73938 - in pypy/branch/cpython-extension/pypy/module/cpyext: . test
afa at codespeak.net
afa at codespeak.net
Wed Apr 21 15:03:34 CEST 2010
Author: afa
Date: Wed Apr 21 15:03:32 2010
New Revision: 73938
Modified:
pypy/branch/cpython-extension/pypy/module/cpyext/test/test_stringobject.py
pypy/branch/cpython-extension/pypy/module/cpyext/typeobject.py
Log:
Oops, ensure that tp_basic_size is correctly set for custom types like PyStringObject
Modified: pypy/branch/cpython-extension/pypy/module/cpyext/test/test_stringobject.py
==============================================================================
--- pypy/branch/cpython-extension/pypy/module/cpyext/test/test_stringobject.py (original)
+++ pypy/branch/cpython-extension/pypy/module/cpyext/test/test_stringobject.py Wed Apr 21 15:03:32 2010
@@ -28,6 +28,8 @@
if(PyString_Size(s) == 11) {
result = 1;
}
+ if(s->ob_type->tp_basicsize != 16)
+ result = 0;
Py_DECREF(s);
return PyBool_FromLong(result);
"""),
Modified: pypy/branch/cpython-extension/pypy/module/cpyext/typeobject.py
==============================================================================
--- pypy/branch/cpython-extension/pypy/module/cpyext/typeobject.py (original)
+++ pypy/branch/cpython-extension/pypy/module/cpyext/typeobject.py Wed Apr 21 15:03:32 2010
@@ -485,10 +485,10 @@
pto.c_tp_base = rffi.cast(PyTypeObjectPtr, ref)
PyPyType_Ready(space, pto, w_type)
+ pto.c_tp_basicsize = rffi.sizeof(typedescr.basestruct)
if pto.c_tp_base:
- pto.c_tp_basicsize = pto.c_tp_base.c_tp_basicsize
- else:
- pto.c_tp_basicsize = rffi.sizeof(typedescr.basestruct)
+ if pto.c_tp_base.c_tp_basicsize > pto.c_tp_basicsize:
+ pto.c_tp_basicsize = pto.c_tp_base.c_tp_basicsize
# will be filled later on with the correct value
# may not be 0
More information about the Pypy-commit
mailing list