Commit e35b657e authored by Georg Brandl's avatar Georg Brandl

Fix cleanup DECREF logic in builtin_filter function.

parent 150db73c
...@@ -210,10 +210,15 @@ builtin_filter(PyObject *self, PyObject *args) ...@@ -210,10 +210,15 @@ builtin_filter(PyObject *self, PyObject *args)
if (PyTuple_Check(seq)) if (PyTuple_Check(seq))
return filtertuple(func, seq); return filtertuple(func, seq);
/* Pre-allocate argument list tuple. */
arg = PyTuple_New(1);
if (arg == NULL)
return NULL;
/* Get iterator. */ /* Get iterator. */
it = PyObject_GetIter(seq); it = PyObject_GetIter(seq);
if (it == NULL) if (it == NULL)
return NULL; goto Fail_arg;
/* Guess a result list size. */ /* Guess a result list size. */
len = PyObject_Size(seq); len = PyObject_Size(seq);
...@@ -222,11 +227,6 @@ builtin_filter(PyObject *self, PyObject *args) ...@@ -222,11 +227,6 @@ builtin_filter(PyObject *self, PyObject *args)
len = 8; /* arbitrary */ len = 8; /* arbitrary */
} }
/* Pre-allocate argument list tuple. */
arg = PyTuple_New(1);
if (arg == NULL)
goto Fail_arg;
/* Get a result list. */ /* Get a result list. */
if (PyList_Check(seq) && seq->ob_refcnt == 1) { if (PyList_Check(seq) && seq->ob_refcnt == 1) {
/* Eww - can modify the list in-place. */ /* Eww - can modify the list in-place. */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment