]> granicus.if.org Git - python/commitdiff
Fix bug introduced in rev. 46806 by not having variable declaration at the top of...
authorBrett Cannon <bcannon@gmail.com>
Fri, 9 Jun 2006 22:45:54 +0000 (22:45 +0000)
committerBrett Cannon <bcannon@gmail.com>
Fri, 9 Jun 2006 22:45:54 +0000 (22:45 +0000)
Objects/abstract.c

index 53898c59900c004bb7b8724cdc237ed3f2e6124c..e85fe208721937994e00f7806a3470de5ab0e987 100644 (file)
@@ -1790,14 +1790,16 @@ PyObject_Call(PyObject *func, PyObject *arg, PyObject *kw)
         ternaryfunc call;
 
        if ((call = func->ob_type->tp_call) != NULL) {
+               PyObject *result = NULL;
                /* slot_tp_call() will be called and ends up calling
                   PyObject_Call() if the object returned for __call__ has
                   __call__ itself defined upon it.  This can be an infinite
                   recursion if you set __call__ in a class to an instance of
                   it. */
-               if (Py_EnterRecursiveCall(" in __call__"))
+               if (Py_EnterRecursiveCall(" in __call__")) {
                    return NULL;
-               PyObject *result = (*call)(func, arg, kw);
+               }
+               result = (*call)(func, arg, kw);
                Py_LeaveRecursiveCall();
                if (result == NULL && !PyErr_Occurred())
                        PyErr_SetString(