Bug 1256571 - Ensure consistent values for variables in closures. r?chmanchester
--- a/python/mozbuild/mozbuild/configure/__init__.py
+++ b/python/mozbuild/mozbuild/configure/__init__.py
@@ -635,17 +635,26 @@ class ConfigureSandbox(dict):
)
glob.update(
__builtins__=self.BUILTINS,
__file__=self._paths[-1] if self._paths else '',
os=self.OS,
log=self.log_impl,
)
self._apply_imports(func, glob)
+ if func.func_closure:
+ def makecell(content):
+ def f():
+ content
+ return f.func_closure[0]
+
+ closure = tuple(makecell(cell.cell_contents)
+ for cell in func.func_closure)
+
func = wraps(func)(types.FunctionType(
func.func_code,
glob,
func.__name__,
func.func_defaults,
- func.func_closure
+ func.func_closure and closure
))
self._prepared_functions.add(func)
return func, glob