changeset 5450:c728424d44c6

revlog: fix caching of buffer objects
author Matt Mackall <mpm@selenic.com>
date Thu, 11 Oct 2007 00:46:53 -0500
parents 17a4b20eda7b
children 0a43875677b1
files mercurial/changelog.py mercurial/revlog.py mercurial/util.py
diffstat 3 files changed, 4 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/changelog.py
+++ b/mercurial/changelog.py
@@ -74,7 +74,7 @@ class appender:
         return ret
 
     def write(self, s):
-        self.data.append(s)
+        self.data.append(str(s))
         self.offset += len(s)
 
 class changelog(revlog):
--- a/mercurial/revlog.py
+++ b/mercurial/revlog.py
@@ -903,7 +903,7 @@ class revlog(object):
         if node == nullid:
             return ""
         if self._cache and self._cache[0] == node:
-            return self._cache[2]
+            return str(self._cache[2])
 
         # look up what we need to read
         text = None
@@ -924,7 +924,7 @@ class revlog(object):
         # do we have useful data cached?
         if self._cache and self._cache[1] >= base and self._cache[1] < rev:
             base = self._cache[1]
-            text = self._cache[2]
+            text = str(self._cache[2])
             self._loadindex(base, rev + 1)
         else:
             self._loadindex(base, rev + 1)
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -1421,7 +1421,7 @@ class chunkbuffer(object):
                 self.iter = False
             self.buf = collector.getvalue()
         if len(self.buf) == l:
-            s, self.buf = self.buf, ''
+            s, self.buf = str(self.buf), ''
         else:
             s, self.buf = self.buf[:l], buffer(self.buf, l)
         return s