Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 31802:ac9a5e89113a
revlog: avoid calculating "flags" twice in revision()
This is more consistent with other code in "revision()" - prefer performance
to code length.
author | Jun Wu <quark@fb.com> |
---|---|
date | Sun, 02 Apr 2017 18:25:12 -0700 |
parents | d22f29abeb42 |
children | 2be73f9720a8 |
comparison
equal
deleted
inserted
replaced
31801:d22f29abeb42 | 31802:ac9a5e89113a |
---|---|
1265 else: | 1265 else: |
1266 node = nodeorrev | 1266 node = nodeorrev |
1267 rev = None | 1267 rev = None |
1268 | 1268 |
1269 cachedrev = None | 1269 cachedrev = None |
1270 flags = None | |
1270 if node == nullid: | 1271 if node == nullid: |
1271 return "" | 1272 return "" |
1272 if self._cache: | 1273 if self._cache: |
1273 if self._cache[0] == node: | 1274 if self._cache[0] == node: |
1274 # _cache only stores rawtext | 1275 # _cache only stores rawtext |
1275 if raw: | 1276 if raw: |
1276 return self._cache[2] | 1277 return self._cache[2] |
1277 # duplicated, but good for perf | 1278 # duplicated, but good for perf |
1278 if rev is None: | 1279 if rev is None: |
1279 rev = self.rev(node) | 1280 rev = self.rev(node) |
1281 if flags is None: | |
1282 flags = self.flags(rev) | |
1280 # no extra flags set, no flag processor runs, text = rawtext | 1283 # no extra flags set, no flag processor runs, text = rawtext |
1281 if self.flags(rev) == REVIDX_DEFAULT_FLAGS: | 1284 if flags == REVIDX_DEFAULT_FLAGS: |
1282 return self._cache[2] | 1285 return self._cache[2] |
1283 | 1286 |
1284 cachedrev = self._cache[1] | 1287 cachedrev = self._cache[1] |
1285 | 1288 |
1286 # look up what we need to read | 1289 # look up what we need to read |
1300 rawtext = bytes(bins[0]) | 1303 rawtext = bytes(bins[0]) |
1301 bins = bins[1:] | 1304 bins = bins[1:] |
1302 | 1305 |
1303 rawtext = mdiff.patches(rawtext, bins) | 1306 rawtext = mdiff.patches(rawtext, bins) |
1304 | 1307 |
1305 text, validatehash = self._processflags(rawtext, self.flags(rev), | 1308 if flags is None: |
1306 'read', raw=raw) | 1309 flags = self.flags(rev) |
1310 | |
1311 text, validatehash = self._processflags(rawtext, flags, 'read', raw=raw) | |
1307 if validatehash: | 1312 if validatehash: |
1308 self.checkhash(text, node, rev=rev) | 1313 self.checkhash(text, node, rev=rev) |
1309 | 1314 |
1310 self._cache = (node, rev, rawtext) | 1315 self._cache = (node, rev, rawtext) |
1311 return text | 1316 return text |