mercurial/obsolete.py
changeset 24018 26d6a6a78c1d
parent 24014 7d9367de2654
child 24019 26fbf07482b2
--- a/mercurial/obsolete.py	Fri Jan 23 15:11:25 2015 -0500
+++ b/mercurial/obsolete.py	Tue Jan 20 13:38:07 2015 -0500
@@ -68,7 +68,7 @@
 
 """
 import struct
-import util, base85, node
+import util, base85, node, parsers
 import phases
 from i18n import _
 
@@ -301,6 +301,15 @@
     # Loop on markers
     stop = len(data) - _fm1fsize
     ufixed = util.unpacker(_fm1fixed)
+
+    fast = getattr(parsers, 'fm1readmarker', None)
+    if fast is not None:
+        while off <= stop:
+            ret = fast(data, off)
+            yield ret[1:]
+            off += ret[0]
+        return
+
     while off <= stop:
         # read fixed part
         o1 = off + fsize