comparison mercurial/manifest.py @ 31097:4a1486c73fdf

manifest: check 'if x is None' instead of 'if not x' The old code here would end up executing __len__ on a tree manifest to determine if 'not _data' was true or not. This was very expensive on large repos. Since this function just cares about memoization, we can just check 'if _data is None' instead and save a bunch of time.
author Durham Goode <durham@fb.com>
date Sun, 26 Feb 2017 10:16:47 -0800
parents 7fbc8a742b4d
children 6d9f8bc2b5ea
comparison
equal deleted inserted replaced
31096:356937ea7a02 31097:4a1486c73fdf
1384 @propertycache 1384 @propertycache
1385 def parents(self): 1385 def parents(self):
1386 return self._revlog().parents(self._node) 1386 return self._revlog().parents(self._node)
1387 1387
1388 def read(self): 1388 def read(self):
1389 if not self._data: 1389 if self._data is None:
1390 if self._node == revlog.nullid: 1390 if self._node == revlog.nullid:
1391 self._data = manifestdict() 1391 self._data = manifestdict()
1392 else: 1392 else:
1393 rl = self._revlog() 1393 rl = self._revlog()
1394 text = rl.revision(self._node) 1394 text = rl.revision(self._node)
1482 1482
1483 def _revlog(self): 1483 def _revlog(self):
1484 return self._repo.manifestlog._revlog.dirlog(self._dir) 1484 return self._repo.manifestlog._revlog.dirlog(self._dir)
1485 1485
1486 def read(self): 1486 def read(self):
1487 if not self._data: 1487 if self._data is None:
1488 rl = self._revlog() 1488 rl = self._revlog()
1489 if self._node == revlog.nullid: 1489 if self._node == revlog.nullid:
1490 self._data = treemanifest() 1490 self._data = treemanifest()
1491 elif rl._treeondisk: 1491 elif rl._treeondisk:
1492 m = treemanifest(dir=self._dir) 1492 m = treemanifest(dir=self._dir)