summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTristan van Berkom <tristan@codethink.co.uk>2020-10-27 17:10:30 +0900
committerTristan Van Berkom <tristan.van.berkom@gmail.com>2020-10-27 11:28:02 +0000
commitc5956f5fb7b353355346a154970f539a91629544 (patch)
tree71eb60505561df26cee8396fed7b740d9022a683
parentceeca58f96bea79d8163433adec1591de33cfa98 (diff)
downloadbuildstream-c5956f5fb7b353355346a154970f539a91629544.tar.gz
_loader/loader.py: Fix _load_file() for cross project link element loads.
When loading a link in _load_file(), we should redirect the entire call to the appropriate loader, the code in place instead was treating the loaded element as if it were loaded locally, and attempting to load it's dependencies redundantly.
-rw-r--r--src/buildstream/_loader/loader.py6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/buildstream/_loader/loader.py b/src/buildstream/_loader/loader.py
index 90b7fbe50..13d96ac4e 100644
--- a/src/buildstream/_loader/loader.py
+++ b/src/buildstream/_loader/loader.py
@@ -423,7 +423,11 @@ class Loader:
_, filename, loader = self._parse_name(
link_target, top_element.link_target, load_subprojects=load_subprojects
)
- top_element = loader._load_file(filename, top_element.link_target, load_subprojects=load_subprojects)
+
+ # Early return, redirect the loading of the file and it's dependencies to the
+ # appropriate loader.
+ #
+ return loader._load_file(filename, top_element.link_target, load_subprojects=load_subprojects)
dependencies = extract_depends_from_node(top_element.node)
# The loader queue is a stack of tuples