From: Georg Brandl Date: Tue, 19 Jul 2005 22:20:20 +0000 (+0000) Subject: Fix cleanup DECREF logic in builtin_filter function. X-Git-Tag: v2.5a0~1575 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e35b657efd1b2eae89497233f6494f8323d5ad1e;p=thirdparty%2FPython%2Fcpython.git Fix cleanup DECREF logic in builtin_filter function. --- diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 145e9460f1d9..f63e27adc63b 100644 --- a/Python/bltinmodule.c +++ b/Python/bltinmodule.c @@ -210,10 +210,15 @@ builtin_filter(PyObject *self, PyObject *args) if (PyTuple_Check(seq)) return filtertuple(func, seq); + /* Pre-allocate argument list tuple. */ + arg = PyTuple_New(1); + if (arg == NULL) + return NULL; + /* Get iterator. */ it = PyObject_GetIter(seq); if (it == NULL) - return NULL; + goto Fail_arg; /* Guess a result list size. */ len = PyObject_Size(seq); @@ -222,11 +227,6 @@ builtin_filter(PyObject *self, PyObject *args) len = 8; /* arbitrary */ } - /* Pre-allocate argument list tuple. */ - arg = PyTuple_New(1); - if (arg == NULL) - goto Fail_arg; - /* Get a result list. */ if (PyList_Check(seq) && seq->ob_refcnt == 1) { /* Eww - can modify the list in-place. */