mercurial/revlog.py
changeset 3100 09e8aecd8016
parent 3086 e7fc04dc6349
child 3126 cff3c58a5766
equal deleted inserted replaced
3099:c27d1e1798a3 3100:09e8aecd8016
   137 
   137 
   138     def loadblock(self, blockstart, blocksize, data=None):
   138     def loadblock(self, blockstart, blocksize, data=None):
   139         if self.all: return
   139         if self.all: return
   140         if data is None:
   140         if data is None:
   141             self.dataf.seek(blockstart)
   141             self.dataf.seek(blockstart)
       
   142             if blockstart + blocksize > self.datasize:
       
   143                 # the revlog may have grown since we've started running,
       
   144                 # but we don't have space in self.index for more entries.
       
   145                 # limit blocksize so that we don't get too much data.
       
   146                 blocksize = max(self.datasize - blockstart, 0)
   142             data = self.dataf.read(blocksize)
   147             data = self.dataf.read(blocksize)
   143         lend = len(data) / self.s
   148         lend = len(data) / self.s
   144         i = blockstart / self.s
   149         i = blockstart / self.s
   145         off = 0
   150         off = 0
   146         for x in xrange(lend):
   151         for x in xrange(lend):