diff Python/pythonrun.c @ 49624:f3234e43e1fe

Merged revisions 67066 via svnmerge from svn+ssh://pythondev@svn.python.org/python/trunk ........ r67066 | benjamin.peterson | 2008-10-30 21:16:05 -0500 (Thu, 30 Oct 2008) | 5 lines make sure the parser flags and passed onto the compiler This fixes "from __future__ import unicode_literals" in an exec statment See #4225 ........
author Benjamin Peterson <benjamin@python.org>
date Fri, 31 Oct 2008 02:28:05 +0000
parents efef5fc45a9a
children 630c174b465e
line wrap: on
line diff
--- a/Python/pythonrun.c	Thu Oct 30 23:03:32 2008 +0000
+++ b/Python/pythonrun.c	Fri Oct 31 02:28:05 2008 +0000
@@ -1688,16 +1688,19 @@
 		       PyCompilerFlags *flags, PyArena *arena)
 {
 	mod_ty mod;
+	PyCompilerFlags localflags;
 	perrdetail err;
 	int iflags = PARSER_FLAGS(flags);
 
 	node *n = PyParser_ParseStringFlagsFilenameEx(s, filename,
 					&_PyParser_Grammar, start, &err,
 					&iflags);
+	if (flags == NULL) {
+		localflags.cf_flags = 0;
+		flags = &localflags;
+	}
 	if (n) {
-		if (flags) {
-			flags->cf_flags |= iflags & PyCF_MASK;
-		}
+		flags->cf_flags |= iflags & PyCF_MASK;
 		mod = PyAST_FromNode(n, flags, filename, arena);
 		PyNode_Free(n);
 		return mod;
@@ -1715,16 +1718,19 @@
 		     PyArena *arena)
 {
 	mod_ty mod;
+	PyCompilerFlags localflags;
 	perrdetail err;
 	int iflags = PARSER_FLAGS(flags);
 
 	node *n = PyParser_ParseFileFlagsEx(fp, filename, enc,
 					  &_PyParser_Grammar,
 				start, ps1, ps2, &err, &iflags);
+	if (flags == NULL) {
+		localflags.cf_flags = 0;
+		flags = &localflags;
+	}
 	if (n) {
-		if (flags) {
-			flags->cf_flags |= iflags & PyCF_MASK;
-		}
+		flags->cf_flags |= iflags & PyCF_MASK;
 		mod = PyAST_FromNode(n, flags, filename, arena);
 		PyNode_Free(n);
 		return mod;