summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2010-12-15 20:05:01 +0000
committerLars Wirzenius <liw@liw.fi>2010-12-15 20:05:01 +0000
commita62138b50d2be793976cc98150d6c88edfb56f34 (patch)
tree3615b7530d23cde5d930c1433f134811971dd9ea
parent1b3e4c946c131a2f38994794c9441ea6c67f59b1 (diff)
downloadobnam-a62138b50d2be793976cc98150d6c88edfb56f34.tar.gz
Cache all lookups done in ClientMetadataTree.find_generations.
Previously, only the matched was cached.
-rw-r--r--obnamlib/clientmetadatatree.py5
1 files changed, 3 insertions, 2 deletions
diff --git a/obnamlib/clientmetadatatree.py b/obnamlib/clientmetadatatree.py
index b3d633cd..e415545b 100644
--- a/obnamlib/clientmetadatatree.py
+++ b/obnamlib/clientmetadatatree.py
@@ -154,8 +154,9 @@ class ClientMetadataTree(obnamlib.StoreTree):
if self.forest:
key = self.genkey(self.GEN_ID)
for t in self.forest.trees:
- if self._lookup_int(t, key) == genid:
- self.known_generations[genid] = t
+ t_genid = self._lookup_int(t, key)
+ self.known_generations[t_genid] = t
+ if t_genid == genid:
return t
raise KeyError('Unknown generation %s' % genid)