# HG changeset patch # User Joerg Sonnenberger <joerg@bec.de> # Date 1601943674 -7200 # Tue Oct 06 02:21:14 2020 +0200 # Node ID 7baf5f798ba96d97c1a593b3591704c3d1c8051e # Parent 439ce34d81e67cbafe9f5f52f00a2ce8d40be7ad revlog: pre-compute null revlog item for pure version The dynamically created tuple shows up in memory profiles and the use of nullid prevents the normal constant building to work. Differential Revision: https://phab.mercurial-scm.org/D9154 diff --git a/mercurial/pure/parsers.py b/mercurial/pure/parsers.py --- a/mercurial/pure/parsers.py +++ b/mercurial/pure/parsers.py @@ -37,6 +37,7 @@ indexfirst = struct.calcsize(b'Q') sizeint = struct.calcsize(b'i') indexsize = struct.calcsize(indexformatng) +nullitem = (0, 0, 0, -1, -1, -1, -1, nullid) def gettype(q): @@ -103,7 +104,7 @@ def __getitem__(self, i): if i == -1: - return (0, 0, 0, -1, -1, -1, -1, nullid) + return nullitem self._check_index(i) if i >= self._lgt: return self._extra[i - self._lgt]