diff options
Diffstat (limited to 'Python/bltinmodule.c')
| -rw-r--r-- | Python/bltinmodule.c | 12 | 
1 files changed, 6 insertions, 6 deletions
diff --git a/Python/bltinmodule.c b/Python/bltinmodule.c index 145e946..f63e27a 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. */  | 
