comparison mercurial/revlog.py @ 5005: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
5004:4b1acb3ecb3c 5005: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)