comparison mercurial/revlog.py @ 5450:c728424d44c6

revlog: fix caching of buffer objects
author Matt Mackall <mpm@selenic.com>
date Thu, 11 Oct 2007 00:46:53 -0500
parents e038738714fd
children 0a43875677b1
comparison
equal deleted inserted replaced
5449:17a4b20eda7b 5450:c728424d44c6
901 def revision(self, node): 901 def revision(self, node):
902 """return an uncompressed revision of a given""" 902 """return an uncompressed revision of a given"""
903 if node == nullid: 903 if node == nullid:
904 return "" 904 return ""
905 if self._cache and self._cache[0] == node: 905 if self._cache and self._cache[0] == node:
906 return self._cache[2] 906 return str(self._cache[2])
907 907
908 # look up what we need to read 908 # look up what we need to read
909 text = None 909 text = None
910 rev = self.rev(node) 910 rev = self.rev(node)
911 base = self.base(rev) 911 base = self.base(rev)
922 df = self.opener(self.datafile) 922 df = self.opener(self.datafile)
923 923
924 # do we have useful data cached? 924 # do we have useful data cached?
925 if self._cache and self._cache[1] >= base and self._cache[1] < rev: 925 if self._cache and self._cache[1] >= base and self._cache[1] < rev:
926 base = self._cache[1] 926 base = self._cache[1]
927 text = self._cache[2] 927 text = str(self._cache[2])
928 self._loadindex(base, rev + 1) 928 self._loadindex(base, rev + 1)
929 else: 929 else:
930 self._loadindex(base, rev + 1) 930 self._loadindex(base, rev + 1)
931 text = self.chunk(base, df=df) 931 text = self.chunk(base, df=df)
932 932