summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan Maat <tristan.maat@codethink.co.uk>2017-10-31 15:57:10 +0000
committerTristan Van Berkom <tristan.vanberkom@codethink.co.uk>2017-11-04 17:35:30 +0900
commit2a7d316d9480f50fa67b0958eb3f1341450e63cd (patch)
tree3d2e10e66d90b5d1eea9fc5d4b2d3d2fc625d56f
parentd970158299f7eeb9c4cc5d1f61d70ccd7c3bcbff (diff)
downloadbuildstream-2a7d316d9480f50fa67b0958eb3f1341450e63cd.tar.gz
_pipeline.py: Fix metaelement resolution
-rw-r--r--buildstream/_pipeline.py16
1 files changed, 7 insertions, 9 deletions
diff --git a/buildstream/_pipeline.py b/buildstream/_pipeline.py
index f0aec5aed..8d390fc3a 100644
--- a/buildstream/_pipeline.py
+++ b/buildstream/_pipeline.py
@@ -137,6 +137,7 @@ class Pipeline():
self.session_elements = 0
self.total_elements = 0
self.unused_workspaces = []
+ self._resolved_elements = {}
loader = Loader(self.project.element_path, targets,
self.project._options,
@@ -251,12 +252,9 @@ class Pipeline():
# Internal: Instantiates plugin-provided Element and Source instances
# from MetaElement and MetaSource objects
#
- def resolve(self, meta_element, resolved=None, ticker=None):
- if resolved is None:
- resolved = {}
-
- if meta_element in resolved:
- return resolved[meta_element]
+ def resolve(self, meta_element, ticker=None):
+ if meta_element in self._resolved_elements:
+ return self._resolved_elements[meta_element]
if ticker:
ticker(meta_element.name)
@@ -267,13 +265,13 @@ class Pipeline():
self.artifacts,
meta_element)
- resolved[meta_element] = element
+ self._resolved_elements[meta_element] = element
# resolve dependencies
for dep in meta_element.dependencies:
- element._add_dependency(self.resolve(dep, resolved=resolved, ticker=ticker), Scope.RUN)
+ element._add_dependency(self.resolve(dep, ticker=ticker), Scope.RUN)
for dep in meta_element.build_dependencies:
- element._add_dependency(self.resolve(dep, resolved=resolved, ticker=ticker), Scope.BUILD)
+ element._add_dependency(self.resolve(dep, ticker=ticker), Scope.BUILD)
# resolve sources
for meta_source in meta_element.sources: