diff Python/ceval.c @ 84513:f4311870e329

Issue #18408: Fix call_function() of ceval.c to handle PyTuple_New() failure (in load_args()), ex: MemoryError.
author Victor Stinner <victor.stinner@gmail.com>
date Mon, 08 Jul 2013 22:27:42 +0200
parents ee9662d77ebb
children 4f730c045f5f
line wrap: on
line diff
--- a/Python/ceval.c	Mon Jul 08 22:25:48 2013 +0200
+++ b/Python/ceval.c	Mon Jul 08 22:27:42 2013 +0200
@@ -4171,10 +4171,15 @@
         else {
             PyObject *callargs;
             callargs = load_args(pp_stack, na);
-            READ_TIMESTAMP(*pintr0);
-            C_TRACE(x, PyCFunction_Call(func,callargs,NULL));
-            READ_TIMESTAMP(*pintr1);
-            Py_XDECREF(callargs);
+            if (callargs != NULL) {
+                READ_TIMESTAMP(*pintr0);
+                C_TRACE(x, PyCFunction_Call(func,callargs,NULL));
+                READ_TIMESTAMP(*pintr1);
+                Py_XDECREF(callargs);
+            }
+            else {
+                x = NULL;
+            }
         }
     } else {
         if (PyMethod_Check(func) && PyMethod_GET_SELF(func) != NULL) {