Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/revlog.py @ 5004:825516d16b25
revlog: move flag checking out of the offset fastpath
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Thu, 26 Jul 2007 12:02:58 -0500 |
parents | a0d37976cd5b |
children | 72082bfced9a |
comparison
equal
deleted
inserted
replaced
5003:4b1acb3ecb3c | 5004:825516d16b25 |
---|---|
27 pass | 27 pass |
28 class LookupError(RevlogError): | 28 class LookupError(RevlogError): |
29 pass | 29 pass |
30 | 30 |
31 def getoffset(q): | 31 def getoffset(q): |
32 if q & 0xFFFF: | |
33 raise RevlogError(_('incompatible revision flag %x') % q) | |
34 return int(q >> 16) | 32 return int(q >> 16) |
35 | 33 |
36 def gettype(q): | 34 def gettype(q): |
37 return int(q & 0xFFFF) | 35 return int(q & 0xFFFF) |
38 | 36 |
905 # look up what we need to read | 903 # look up what we need to read |
906 text = None | 904 text = None |
907 rev = self.rev(node) | 905 rev = self.rev(node) |
908 base = self.base(rev) | 906 base = self.base(rev) |
909 | 907 |
908 # check rev flags | |
909 if self.index[rev][0] & 0xFFFF: | |
910 raise RevlogError(_('incompatible revision flag %x') % q) | |
911 | |
910 if self._inline: | 912 if self._inline: |
911 # we probably have the whole chunk cached | 913 # we probably have the whole chunk cached |
912 df = None | 914 df = None |
913 else: | 915 else: |
914 df = self.opener(self.datafile) | 916 df = self.opener(self.datafile) |