]> arthur.barton.de Git - bup.git/blobdiff - lib/bup/midx.py
Remove inefficient (or will be) uses of buffer
[bup.git] / lib / bup / midx.py
index a4ef37b21cbaa792aa622d9bdd109ce5f3434498..9de3ae80d19ccd4651e2ec109315b2654d8bbdbe 100644 (file)
@@ -1,7 +1,9 @@
 
+from __future__ import absolute_import
 import glob, mmap, os, struct
 
 from bup import _helpers
+from bup.compat import range
 from bup.helpers import log, mmap_read
 
 
@@ -56,8 +58,8 @@ class PackMidx:
     def _init_failed(self):
         self.bits = 0
         self.entries = 1
-        self.fanout = buffer('\0\0\0\0')
-        self.shatable = buffer('\0'*20)
+        self.fanout = b'\0\0\0\0'
+        self.shatable = b'\0' * 20
         self.idxnames = []
 
     def _fanget(self, i):
@@ -114,8 +116,9 @@ class PackMidx:
         return None
 
     def __iter__(self):
-        for i in xrange(self._fanget(self.entries-1)):
-            yield buffer(self.shatable, i*20, 20)
+        count = self._fanget(self.entries-1)
+        for ofs in range(0, count * 20, 20):
+            yield self.shatable[ofs : ofs + 20]
 
     def __len__(self):
         return int(self._fanget(self.entries-1))