revlog: pre-compute null revlog item for pure version
authorJoerg Sonnenberger <joerg@bec.de>
Tue, 06 Oct 2020 02:21:14 +0200
changeset 45645 7baf5f798ba9
parent 45644 439ce34d81e6
child 45646 1efbc787334c
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
mercurial/pure/parsers.py
--- a/mercurial/pure/parsers.py	Sun Oct 04 22:17:52 2020 -0700
+++ b/mercurial/pure/parsers.py	Tue Oct 06 02:21:14 2020 +0200
@@ -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]