]> granicus.if.org Git - python/commitdiff
restore runtime exec test (#21591)
authorBenjamin Peterson <benjamin@python.org>
Sun, 10 Aug 2014 02:39:36 +0000 (19:39 -0700)
committerBenjamin Peterson <benjamin@python.org>
Sun, 10 Aug 2014 02:39:36 +0000 (19:39 -0700)
Python/ceval.c

index 38f51faf69c38777705e7228ab36f718993aa926..e00860831f15f3d4425db0f42b167628480da45b 100644 (file)
@@ -4673,9 +4673,18 @@ static int
 exec_statement(PyFrameObject *f, PyObject *prog, PyObject *globals,
                PyObject *locals)
 {
+    int n;
     PyObject *v;
     int plain = 0;
 
+    if (PyTuple_Check(prog) && globals == Py_None && locals == Py_None &&
+        ((n = PyTuple_Size(prog)) == 2 || n == 3)) {
+        /* Backward compatibility hack */
+        globals = PyTuple_GetItem(prog, 1);
+        if (n == 3)
+            locals = PyTuple_GetItem(prog, 2);
+        prog = PyTuple_GetItem(prog, 0);
+    }
     if (globals == Py_None) {
         globals = PyEval_GetGlobals();
         if (locals == Py_None) {