diff options
author | Benjamin Schubert <ben.c.schubert@gmail.com> | 2019-02-15 09:35:40 +0000 |
---|---|---|
committer | Benjamin Schubert <ben.c.schubert@gmail.com> | 2019-02-15 12:34:36 +0000 |
commit | 3bbb90e746b5d7ca6850a20c181b0e6d57f5f6ce (patch) | |
tree | 28e5f87af5ec96d4007f597fc966d1c2a56da9fe /buildstream/_loader/loader.py | |
parent | 8b34e3568a753a8d5774b91f2b4701aea7f9baf9 (diff) | |
download | buildstream-3bbb90e746b5d7ca6850a20c181b0e6d57f5f6ce.tar.gz |
Use sets when checking for existence of an element
Diffstat (limited to 'buildstream/_loader/loader.py')
-rw-r--r-- | buildstream/_loader/loader.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/buildstream/_loader/loader.py b/buildstream/_loader/loader.py index 17d7c63fb..7ccb9a37c 100644 --- a/buildstream/_loader/loader.py +++ b/buildstream/_loader/loader.py @@ -284,17 +284,17 @@ class Loader(): def _check_circular_deps(self, element, check_elements=None, validated=None, sequence=None): if check_elements is None: - check_elements = {} + check_elements = set() if validated is None: - validated = {} + validated = set() if sequence is None: sequence = [] # Skip already validated branches - if validated.get(element) is not None: + if element in validated: return - if check_elements.get(element) is not None: + if element in check_elements: # Create `chain`, the loop of element dependencies from this # element back to itself, by trimming everything before this # element from the sequence under consideration. @@ -306,15 +306,15 @@ class Loader(): .format(element.full_name, " -> ".join(chain))) # Push / Check each dependency / Pop - check_elements[element] = True + check_elements.add(element) sequence.append(element.full_name) for dep in element.dependencies: dep.element._loader._check_circular_deps(dep.element, check_elements, validated, sequence) - del check_elements[element] + check_elements.remove(element) sequence.pop() # Eliminate duplicate paths - validated[element] = True + validated.add(element) # _sort_dependencies(): # |