# HG changeset patch # User Jun Wu # Date 1491182712 25200 # Node ID ac9a5e89113aad3663f130c4c54ee3f2703efda0 # Parent d22f29abeb4254896be69156ccaa0e0f5b2d87b6 revlog: avoid calculating "flags" twice in revision() This is more consistent with other code in "revision()" - prefer performance to code length. diff -r d22f29abeb42 -r ac9a5e89113a mercurial/revlog.py --- a/mercurial/revlog.py Sun Apr 02 18:57:03 2017 -0700 +++ b/mercurial/revlog.py Sun Apr 02 18:25:12 2017 -0700 @@ -1267,6 +1267,7 @@ rev = None cachedrev = None + flags = None if node == nullid: return "" if self._cache: @@ -1277,8 +1278,10 @@ # duplicated, but good for perf if rev is None: rev = self.rev(node) + if flags is None: + flags = self.flags(rev) # no extra flags set, no flag processor runs, text = rawtext - if self.flags(rev) == REVIDX_DEFAULT_FLAGS: + if flags == REVIDX_DEFAULT_FLAGS: return self._cache[2] cachedrev = self._cache[1] @@ -1302,8 +1305,10 @@ rawtext = mdiff.patches(rawtext, bins) - text, validatehash = self._processflags(rawtext, self.flags(rev), - 'read', raw=raw) + if flags is None: + flags = self.flags(rev) + + text, validatehash = self._processflags(rawtext, flags, 'read', raw=raw) if validatehash: self.checkhash(text, node, rev=rev)