fix undefined variable 'context' in compile_multiple()
authorStefan Behnel <stefan_ml@behnel.de>
Wed, 15 Aug 2012 05:51:28 +0000 (07:51 +0200)
committerStefan Behnel <stefan_ml@behnel.de>
Wed, 15 Aug 2012 05:51:28 +0000 (07:51 +0200)
Cython/Compiler/Main.py

index 64e1798..3447584 100644 (file)
@@ -384,10 +384,11 @@ def create_default_resultobj(compilation_source, options):
         result.c_file = Utils.replace_suffix(source_desc.filename, c_suffix)
     return result
 
-def run_pipeline(source, options, full_module_name = None):
+def run_pipeline(source, options, full_module_name=None, context=None):
     import Pipeline
 
-    context = options.create_context()
+    if context is None:
+        context = options.create_context()
 
     # Set up source object
     cwd = os.getcwd()
@@ -551,16 +552,20 @@ def compile_multiple(sources, options):
     if timestamps is None:
         timestamps = recursive
     verbose = options.verbose or ((recursive or timestamps) and not options.quiet)
+    context = None
     for source in sources:
         if source not in processed:
-            # Compiling multiple sources in one context doesn't quite
-            # work properly yet.
+            if context is None:
+                context = options.create_context()
             if not timestamps or context.c_file_out_of_date(source):
                 if verbose:
                     sys.stderr.write("Compiling %s\n" % source)
 
-                result = run_pipeline(source, options)
+                result = run_pipeline(source, options, context=context)
                 results.add(source, result)
+                # Compiling multiple sources in one context doesn't quite
+                # work properly yet.
+                context = None
             processed.add(source)
             if recursive:
                 for module_name in context.find_cimported_module_names(source):