##// END OF EJS Templates
use the new parseindex implementation C in parsers
Bernhard Leiner -
r7109:528b7fc1 default
parent child Browse files
Show More
@@ -12,7 +12,7 b' of the GNU General Public License, incor'
12
12
13 from node import bin, hex, nullid, nullrev, short
13 from node import bin, hex, nullid, nullrev, short
14 from i18n import _
14 from i18n import _
15 import changegroup, errno, ancestor, mdiff
15 import changegroup, errno, ancestor, mdiff, parsers
16 import struct, util, zlib
16 import struct, util, zlib
17
17
18 _pack = struct.pack
18 _pack = struct.pack
@@ -374,38 +374,9 b' class revlogio(object):'
374 index[0] = e
374 index[0] = e
375 return index, nodemap, None
375 return index, nodemap, None
376
376
377 s = self.size
378 cache = None
379 index = []
380 nodemap = {nullid: nullrev}
381 n = off = 0
382 # if we're not using lazymap, always read the whole index
383 data = fp.read()
377 data = fp.read()
384 l = len(data) - s
378 # call the C implementation to parse the index data
385 append = index.append
379 index, nodemap, cache = parsers.parse_index(data, inline)
386 if inline:
387 cache = (0, data)
388 while off <= l:
389 e = _unpack(indexformatng, data[off:off + s])
390 nodemap[e[7]] = n
391 append(e)
392 n += 1
393 if e[1] < 0:
394 break
395 off += e[1] + s
396 else:
397 while off <= l:
398 e = _unpack(indexformatng, data[off:off + s])
399 nodemap[e[7]] = n
400 append(e)
401 n += 1
402 off += s
403
404 e = list(index[0])
405 type = gettype(e[0])
406 e[0] = offset_type(0, type)
407 index[0] = e
408
409 return index, nodemap, cache
380 return index, nodemap, cache
410
381
411 def packentry(self, entry, node, version, rev):
382 def packentry(self, entry, node, version, rev):
@@ -492,8 +463,10 b' class revlog(object):'
492 d = self._io.parseindex(f, self._inline)
463 d = self._io.parseindex(f, self._inline)
493 self.index, self.nodemap, self._chunkcache = d
464 self.index, self.nodemap, self._chunkcache = d
494
465
495 # add the magic null revision at -1
466 # add the magic null revision at -1 (if it hasn't been done already)
496 self.index.append((0, 0, 0, -1, -1, -1, -1, nullid))
467 if (self.index == [] or isinstance(self.index, lazyindex) or
468 self.index[-1][7] != nullid) :
469 self.index.append((0, 0, 0, -1, -1, -1, -1, nullid))
497
470
498 def _loadindex(self, start, end):
471 def _loadindex(self, start, end):
499 """load a block of indexes all at once from the lazy parser"""
472 """load a block of indexes all at once from the lazy parser"""
General Comments 0
You need to be logged in to leave comments. Login now