diff options
author | Lars Wirzenius <liw@liw.fi> | 2016-06-12 17:16:35 +0300 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2016-06-12 17:16:35 +0300 |
commit | 5c2ce43eb53fb3f4d242aedb8ad4b6a4c30b4080 (patch) | |
tree | 4a9898c0c248856c057ad34f874462e0a4f7a9d3 | |
parent | 55286470ab9c621b430379b6633873361a7ed08f (diff) | |
download | obnam-5c2ce43eb53fb3f4d242aedb8ad4b6a4c30b4080.tar.gz |
Don't add the same refs repeatedly to todo
This speeds things up a lot.
-rw-r--r-- | meliaereader/reader.py | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/meliaereader/reader.py b/meliaereader/reader.py index a955b226..0398f2ba 100644 --- a/meliaereader/reader.py +++ b/meliaereader/reader.py @@ -71,17 +71,17 @@ class MeliaeReader(object): def _simple_get_closure(self, ref): # pragma: no cover closure = set() - todo = [ref] + todo = set([ref]) done = set() while todo: - ref = todo.pop(0) + ref = todo.pop() done.add(ref) closure.add(ref) obj = self.get_object(ref) for child_ref in obj['refs']: if child_ref not in done and child_ref in self: - todo.append(child_ref) + todo.add(child_ref) return closure |