mercurial/revlog.py
changeset 2289 854954fd410a
parent 2255 3f38e872f39a
child 2295 9c15f85e61b1
equal deleted inserted replaced
2280:09ed44225571 2289:854954fd410a
   403             if not data:
   403             if not data:
   404                 break
   404                 break
   405             if n == 0 and self.inlinedata():
   405             if n == 0 and self.inlinedata():
   406                 # cache the first chunk
   406                 # cache the first chunk
   407                 self.chunkcache = (0, data)
   407                 self.chunkcache = (0, data)
       
   408             if leftover:
       
   409                 data = leftover + data
       
   410                 leftover = None
   408             off = 0
   411             off = 0
   409             l = len(data)
   412             l = len(data)
   410             while off < l:
   413             while off < l:
   411                 if l - off < s:
   414                 if l - off < s:
   412                     leftover = data[off:]
   415                     leftover = data[off:]
   413                     break
   416                     break
   414                 if leftover:
   417                 cur = data[off:off + s]
   415                     cur = leftover + data[off:off + s - len(leftover)]
   418                 off += s
   416                     off += s - len(leftover)
       
   417                     leftover = None
       
   418                 else:
       
   419                     cur = data[off:off + s]
       
   420                     off += s
       
   421                 e = struct.unpack(self.indexformat, cur)
   419                 e = struct.unpack(self.indexformat, cur)
   422                 self.index.append(e)
   420                 self.index.append(e)
   423                 self.nodemap[e[-1]] = n
   421                 self.nodemap[e[-1]] = n
   424                 n += 1
   422                 n += 1
   425                 if inline:
   423                 if inline: