mercurial/revlog.py
changeset 30288 ceddc3d94d74
parent 30287 0986f225c149
child 30289 1f92056c4066
--- a/mercurial/revlog.py	Sun Oct 23 09:34:55 2016 -0700
+++ b/mercurial/revlog.py	Sat Oct 22 15:41:23 2016 -0700
@@ -1109,8 +1109,14 @@
         Callers will need to call ``self.start(rev)`` and ``self.length(rev)``
         to determine where each revision's data begins and ends.
         """
-        start = self.start(startrev)
-        end = self.end(endrev)
+        # Inlined self.start(startrev) & self.end(endrev) for perf reasons
+        # (functions are expensive).
+        index = self.index
+        istart = index[startrev]
+        iend = index[endrev]
+        start = int(istart[0] >> 16)
+        end = int(iend[0] >> 16) + iend[1]
+
         if self._inline:
             start += (startrev + 1) * self._io.size
             end += (endrev + 1) * self._io.size