obsstore: cache size computation for fm1 node
authorPierre-Yves David <pierre-yves.david@fb.com>
Wed, 26 Nov 2014 23:23:33 -0800
changeset 23499 b46876c94a93
parent 23498 ac910b1f5658
child 23502 ced3ecfc2e57
obsstore: cache size computation for fm1 node We have two different types of node type (sha1 and sha256, only sha1 is used now) and therefor different sizes for them. We now compute the value once instead of redoing the computation every loop. This has no visible performance impact.
mercurial/obsolete.py
--- a/mercurial/obsolete.py	Wed Nov 26 23:21:20 2014 -0800
+++ b/mercurial/obsolete.py	Wed Nov 26 23:23:33 2014 -0800
@@ -276,6 +276,8 @@
 _fm1fixed = '>IdhHBBB20s'
 _fm1nodesha1 = '20s'
 _fm1nodesha256 = '32s'
+_fm1nodesha1size = _calcsize(_fm1nodesha1)
+_fm1nodesha256size = _calcsize(_fm1nodesha256)
 _fm1fsize = _calcsize(_fm1fixed)
 _fm1parentnone = 3
 _fm1parentshift = 14
@@ -298,9 +300,10 @@
         # build the date tuple (upgrade tz minutes to seconds)
         date = (seconds, tz * 60)
         _fm1node = _fm1nodesha1
+        fnodesize = _fm1nodesha1size
         if flags & usingsha256:
             _fm1node = _fm1nodesha256
-        fnodesize = _calcsize(_fm1node)
+            fnodesize = _fm1nodesha256size
         # read replacement
         sucs = ()
         if numsuc: