[Python-checkins] cpython (2.7): restore runtime exec test (#21591)

benjamin.peterson python-checkins at python.org
Sun Aug 10 04:40:02 CEST 2014


http://hg.python.org/cpython/rev/0e9b023078e6
changeset:   92056:0e9b023078e6
branch:      2.7
parent:      92043:76ca8569a04c
user:        Benjamin Peterson <benjamin at python.org>
date:        Sat Aug 09 19:39:36 2014 -0700
summary:
  restore runtime exec test (#21591)

files:
  Python/ceval.c |  9 +++++++++
  1 files changed, 9 insertions(+), 0 deletions(-)


diff --git a/Python/ceval.c b/Python/ceval.c
--- a/Python/ceval.c
+++ b/Python/ceval.c
@@ -4673,9 +4673,18 @@
 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) {

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list