summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBas Westerbaan <bas@westerbaan.name>2014-06-14 18:26:30 +0200
committerBas Westerbaan <bas@westerbaan.name>2014-06-14 18:26:30 +0200
commitba8cf1c402fe68f283480c9abbf7707d004a8583 (patch)
tree10dc27abb1b9922cc81716915be90a0054397927
parent56cf3841593733dafe0f84a0e8cbc16c3dc7250d (diff)
downloadmsgpack-python-ba8cf1c402fe68f283480c9abbf7707d004a8583.tar.gz
fallback: _fb_consume: improve performance with pypy
-rw-r--r--msgpack/fallback.py11
1 files changed, 8 insertions, 3 deletions
diff --git a/msgpack/fallback.py b/msgpack/fallback.py
index 294a97e..0e0557f 100644
--- a/msgpack/fallback.py
+++ b/msgpack/fallback.py
@@ -202,12 +202,17 @@ class Unpacker(object):
self._fb_buffers.append(next_bytes)
def _fb_consume(self):
- self._fb_buffers = self._fb_buffers[self._fb_buf_i:]
+ if self._fb_buf_i:
+ for i in xrange(self._fb_buf_i):
+ self._fb_buf_n -= len(self._fb_buffers[i])
+ self._fb_buffers = self._fb_buffers[self._fb_buf_i:]
+ self._fb_buf_i = 0
if self._fb_buffers:
self._fb_buffers[0] = self._fb_buffers[0][self._fb_buf_o:]
+ self._fb_buf_n -= self._fb_buf_o
+ else:
+ self._fb_buf_n = 0
self._fb_buf_o = 0
- self._fb_buf_i = 0
- self._fb_buf_n = sum(map(len, self._fb_buffers))
def _fb_got_extradata(self):
if self._fb_buf_i != len(self._fb_buffers):