Skip to content

Commit bb8a69d

Browse files
Fix resize
1 parent d30b514 commit bb8a69d

File tree

2 files changed

+9
-11
lines changed

2 files changed

+9
-11
lines changed

Lib/test/test_capi/test_tuple.py

Lines changed: 5 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ def test_tuple_new(self):
5454
# Test PyTuple_New()
5555
tuple_new = _testlimitedcapi.tuple_new
5656
size = _testlimitedcapi.tuple_size
57-
checknull = _testcapi._check_tuple_item_is_NULL
5857

5958
tup1 = tuple_new(0)
6059
self.assertEqual(tup1, ())
@@ -66,7 +65,7 @@ def test_tuple_new(self):
6665
self.assertIs(type(tup2), tuple)
6766
self.assertEqual(size(tup2), 1)
6867
self.assertIsNot(tup2, tup1)
69-
self.assertTrue(checknull(tup2, 0))
68+
self.assertIsNone(tup2[0])
7069
self._tracked(tup2)
7170

7271
self.assertRaises(SystemError, tuple_new, -1)
@@ -299,7 +298,6 @@ def test_tuple_set_item(self):
299298
def test__tuple_resize(self):
300299
# Test _PyTuple_Resize()
301300
resize = _testcapi._tuple_resize
302-
checknull = _testcapi._check_tuple_item_is_NULL
303301

304302
a = ()
305303
b = resize(a, 0, False)
@@ -308,8 +306,8 @@ def test__tuple_resize(self):
308306
b = resize(a, 2, False)
309307
self.assertEqual(len(a), 0)
310308
self.assertEqual(len(b), 2)
311-
self.assertTrue(checknull(b, 0))
312-
self.assertTrue(checknull(b, 1))
309+
self.assertIsNone(b[0])
310+
self.assertIsNone(b[1])
313311

314312
a = ([1], [2], [3])
315313
b = resize(a, 3)
@@ -319,8 +317,8 @@ def test__tuple_resize(self):
319317
b = resize(a, 5)
320318
self.assertEqual(len(b), 5)
321319
self.assertEqual(b[:3], a)
322-
self.assertTrue(checknull(b, 3))
323-
self.assertTrue(checknull(b, 4))
320+
self.assertIsNone(b[3])
321+
self.assertIsNone(b[4])
324322

325323
a = ()
326324
self.assertRaises(MemoryError, resize, a, PY_SSIZE_T_MAX)

Objects/tupleobject.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1050,10 +1050,10 @@ _PyTuple_Resize(PyObject **pv, Py_ssize_t newsize)
10501050
return -1;
10511051
}
10521052
_Py_NewReferenceNoTotal((PyObject *) sv);
1053-
/* Zero out items added by growing */
1054-
if (newsize > oldsize)
1055-
memset(&sv->ob_item[oldsize], 0,
1056-
sizeof(*sv->ob_item) * (newsize - oldsize));
1053+
/* Set items added by growing to Py_None */
1054+
for(i = oldsize; i < newsize;i++) {
1055+
sv->ob_item[i] = Py_None;
1056+
}
10571057
*pv = (PyObject *) sv;
10581058
_PyObject_GC_TRACK(sv);
10591059
return 0;

0 commit comments

Comments
 (0)