From 5cd244f044ac70985a92768285330b2603efdb65 Mon Sep 17 00:00:00 2001 From: Kumar Aditya <59607654+kumaraditya303@users.noreply.github.com> Date: Sat, 14 May 2022 13:18:55 +0000 Subject: [PATCH 1/2] fix memory leak in _PyMemoryIter_Type --- Objects/memoryobject.c | 6 +++--- Objects/object.c | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Objects/memoryobject.c b/Objects/memoryobject.c index 45fe8985c2adb4..8c269168824471 100644 --- a/Objects/memoryobject.c +++ b/Objects/memoryobject.c @@ -3156,7 +3156,7 @@ static PyMethodDef memory_methods[] = { /* Memoryview Iterator */ /**************************************************************************/ -static PyTypeObject PyMemoryIter_Type; +PyTypeObject _PyMemoryIter_Type; typedef struct { PyObject_HEAD @@ -3233,7 +3233,7 @@ memory_iter(PyObject *seq) } memoryiterobject *it; - it = PyObject_GC_New(memoryiterobject, &PyMemoryIter_Type); + it = PyObject_GC_New(memoryiterobject, &_PyMemoryIter_Type); if (it == NULL) { return NULL; } @@ -3246,7 +3246,7 @@ memory_iter(PyObject *seq) return (PyObject *)it; } -static PyTypeObject PyMemoryIter_Type = { +PyTypeObject _PyMemoryIter_Type = { PyVarObject_HEAD_INIT(&PyType_Type, 0) .tp_name = "memory_iterator", .tp_basicsize = sizeof(memoryiterobject), diff --git a/Objects/object.c b/Objects/object.c index 8339ab392fcaee..c9bb60eaed87c1 100644 --- a/Objects/object.c +++ b/Objects/object.c @@ -1845,6 +1845,7 @@ _PyTypes_InitState(PyInterpreterState *interp) extern PyTypeObject PyHKEY_Type; #endif extern PyTypeObject _Py_GenericAliasIterType; +extern PyTypeObject _PyMemoryIter_Type; static PyTypeObject* static_types[] = { // The two most important base types: must be initialized first and @@ -1944,6 +1945,7 @@ static PyTypeObject* static_types[] = { &_PyHamt_Type, &_PyInterpreterID_Type, &_PyManagedBuffer_Type, + &_PyMemoryIter_Type, &_PyMethodWrapper_Type, &_PyNamespace_Type, &_PyNone_Type, From 7d1b48807efee842c3026bae4216ce8b175cf600 Mon Sep 17 00:00:00 2001 From: "blurb-it[bot]" <43283697+blurb-it[bot]@users.noreply.github.com> Date: Sat, 14 May 2022 13:22:12 +0000 Subject: [PATCH 2/2] =?UTF-8?q?=F0=9F=93=9C=F0=9F=A4=96=20Added=20by=20blu?= =?UTF-8?q?rb=5Fit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2022-05-14-13-22-11.gh-issue-92804.rAqpI2.rst | 1 + 1 file changed, 1 insertion(+) create mode 100644 Misc/NEWS.d/next/Core and Builtins/2022-05-14-13-22-11.gh-issue-92804.rAqpI2.rst diff --git a/Misc/NEWS.d/next/Core and Builtins/2022-05-14-13-22-11.gh-issue-92804.rAqpI2.rst b/Misc/NEWS.d/next/Core and Builtins/2022-05-14-13-22-11.gh-issue-92804.rAqpI2.rst new file mode 100644 index 00000000000000..7a5fd3f6568eaf --- /dev/null +++ b/Misc/NEWS.d/next/Core and Builtins/2022-05-14-13-22-11.gh-issue-92804.rAqpI2.rst @@ -0,0 +1 @@ +Fix memory leak in ``memoryview`` iterator as it was not finalized at exit. Patch by Kumar Aditya.