D4470: wireprotov2peer: use our CBOR decoder

indygreg (Gregory Szorc) phabricator at mercurial-scm.org
Tue Sep 4 18:29:29 UTC 2018


indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Behavior should be the same in order to preserve backwards
  compatibility. We obviously want to stream values in this code.
  We'll do that in subsequent commits.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D4470

AFFECTED FILES
  mercurial/wireprotov2peer.py

CHANGE DETAILS

diff --git a/mercurial/wireprotov2peer.py b/mercurial/wireprotov2peer.py
--- a/mercurial/wireprotov2peer.py
+++ b/mercurial/wireprotov2peer.py
@@ -8,15 +8,15 @@
 from __future__ import absolute_import
 
 from .i18n import _
-from .thirdparty import (
-    cbor,
-)
 from . import (
     encoding,
     error,
     util,
     wireprotoframing,
 )
+from .utils import (
+    cborutil,
+)
 
 def formatrichmessage(atoms):
     """Format an encoded message from the framing protocol."""
@@ -44,13 +44,10 @@
 
     def cborobjects(self):
         """Obtain decoded CBOR objects from this response."""
-        size = self.b.tell()
         self.b.seek(0)
 
-        decoder = cbor.CBORDecoder(self.b)
-
-        while self.b.tell() < size:
-            yield decoder.decode()
+        for v in cborutil.decodeall(self.b.getvalue()):
+            yield v
 
 class clienthandler(object):
     """Object to handle higher-level client activities.



To: indygreg, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list