]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/hashsplit.py
pylint: check for trailing whitespace
[bup.git] / lib / bup / hashsplit.py
index dc3a538fe52d329537a3021c289dca16c9692de7..ff00e54b3cd46b4fda1b30827e03762c7ebce025 100644 (file)
@@ -2,15 +2,16 @@
 from __future__ import absolute_import
 import io, math, os
 
-from bup import _helpers, compat, helpers
-from bup.compat import buffer, join_bytes
+from bup import _helpers, helpers
+from bup._helpers import cat_bytes
+from bup.compat import buffer
 from bup.helpers import sc_page_size
 
 
 _fmincore = getattr(helpers, 'fmincore', None)
 
 BLOB_MAX = 8192*4   # 8192 is the "typical" blob size for bupsplit
-BLOB_READ_SIZE = 1024*1024
+BLOB_READ_SIZE = 8 * 1024 * 1024
 MAX_PER_TREE = 256
 progress_callback = None
 fanout = 16
@@ -28,13 +29,20 @@ class Buf:
         self.start = 0
 
     def put(self, s):
-        if s:
-            self.data = join_bytes(buffer(self.data, self.start), s)
+        if not self.data:
+            self.data = s
             self.start = 0
-            
+        elif s:
+            remaining = len(self.data) - self.start
+            self.data = cat_bytes(self.data, self.start, remaining,
+                                  s, 0, len(s))
+            self.start = 0
+
     def peek(self, count):
+        if count <= 256:
+            return self.data[self.start : self.start + count]
         return buffer(self.data, self.start, count)
-    
+
     def eat(self, count):
         self.start += count