diff --git a/mercurial/revlogutils/nodemap.py b/mercurial/revlogutils/nodemap.py --- a/mercurial/revlogutils/nodemap.py +++ b/mercurial/revlogutils/nodemap.py @@ -221,6 +221,9 @@ contains up to 16 entry indexed from 0 to 15""" + def __iter__(self): + return iter(self.get(i) for i in range(16)) + def _build_trie(index): """build a nodemap trie @@ -295,7 +298,7 @@ Children block are assumed to be already persisted and present in block_map. """ - data = tuple(_to_value(block_node.get(i), block_map) for i in range(16)) + data = tuple(_to_value(v, block_map) for v in block_node) return S_BLOCK.pack(*data)