mirror of
https://github.com/python/cpython.git
synced 2026-01-26 21:03:34 +00:00
[3.14] gh-140474: Fix memory leak in array.array (GH-140478) (GH-140498)
gh-140474: Fix memory leak in `array.array` (GH-140478) (cherry picked from commit aa9d0a61d5c48717454f36351f0aabe4cc532de5) Co-authored-by: Stan Ulbrych <89152624+StanFromIreland@users.noreply.github.com>
This commit is contained in:
parent
853e5d94eb
commit
0fdae5f590
@ -1255,6 +1255,14 @@ class UnicodeTest(StringTest, unittest.TestCase):
|
||||
with self.assertWarns(DeprecationWarning):
|
||||
array.array("u")
|
||||
|
||||
def test_empty_string_mem_leak_gh140474(self):
|
||||
with warnings.catch_warnings():
|
||||
warnings.simplefilter('ignore', DeprecationWarning)
|
||||
for _ in range(1000):
|
||||
a = array.array('u', '')
|
||||
self.assertEqual(len(a), 0)
|
||||
self.assertEqual(a.typecode, 'u')
|
||||
|
||||
|
||||
class UCS4Test(UnicodeTest):
|
||||
typecode = 'w'
|
||||
|
||||
@ -0,0 +1,2 @@
|
||||
Fix memory leak in :class:`array.array` when creating arrays from an empty
|
||||
:class:`str` and the ``u`` type code.
|
||||
@ -2838,6 +2838,9 @@ array_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
|
||||
Py_SET_SIZE(self, n);
|
||||
self->allocated = n;
|
||||
}
|
||||
else {
|
||||
PyMem_Free(ustr);
|
||||
}
|
||||
}
|
||||
else { // c == 'w'
|
||||
Py_ssize_t n = PyUnicode_GET_LENGTH(initial);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user