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