Fix for a bug found by Armin Rigo, plus test.
https://sourceforge.net/tracker/?func=detail&atid=532154&aid=1467852&group_id=71702
This commit is contained in:
parent
8920bf24f8
commit
55d031ef23
|
@ -166,6 +166,18 @@ class PointersTestCase(unittest.TestCase):
|
|||
result = func( byref(argc), argv )
|
||||
assert result == 'world', result
|
||||
|
||||
def test_bug_1467852(self):
|
||||
# http://sourceforge.net/tracker/?func=detail&atid=532154&aid=1467852&group_id=71702
|
||||
x = c_int(5)
|
||||
dummy = []
|
||||
for i in range(32000):
|
||||
dummy.append(c_int(i))
|
||||
y = c_int(6)
|
||||
p = pointer(x)
|
||||
pp = pointer(p)
|
||||
q = pointer(y)
|
||||
pp[0] = q # <==
|
||||
self.failUnlessEqual(p[0], 6)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
|
|
|
@ -548,7 +548,7 @@ PointerType_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
|||
return NULL;
|
||||
stgdict->size = sizeof(void *);
|
||||
stgdict->align = getentry("P")->pffi_type->alignment;
|
||||
stgdict->length = 2;
|
||||
stgdict->length = 1;
|
||||
stgdict->ffi_type = ffi_type_pointer;
|
||||
|
||||
proto = PyDict_GetItemString(typedict, "_type_"); /* Borrowed ref */
|
||||
|
|
Loading…
Reference in New Issue