Mercurial > public > mercurial-scm > hg-stable
diff mercurial/manifest.py @ 6389:0231f763ebc8
manifest: improve parsing performance by 8x via a new C extension
author | Bryan O'Sullivan <bos@serpentine.com> |
---|---|
date | Wed, 26 Mar 2008 10:12:10 -0700 |
parents | e75aab656f46 |
children | 86e8187b721a |
line wrap: on
line diff
--- a/mercurial/manifest.py Mon Mar 24 18:05:30 2008 -0500 +++ b/mercurial/manifest.py Wed Mar 26 10:12:10 2008 -0700 @@ -8,7 +8,7 @@ from node import bin, hex, nullid from revlog import revlog, RevlogError from i18n import _ -import array, struct, mdiff +import array, struct, mdiff, parsers class manifestdict(dict): def __init__(self, mapping=None, flags=None): @@ -39,14 +39,7 @@ def parse(self, lines): mfdict = manifestdict() - fdict = mfdict._flags - for l in lines.splitlines(): - f, n = l.split('\0') - if len(n) > 40: - fdict[f] = n[40:] - mfdict[f] = bin(n[:40]) - else: - mfdict[f] = bin(n) + parsers.parse_manifest(mfdict, mfdict._flags, lines) return mfdict def readdelta(self, node):