summaryrefslogtreecommitdiff
path: root/msgpack/fallback.py
diff options
context:
space:
mode:
Diffstat (limited to 'msgpack/fallback.py')
-rw-r--r--msgpack/fallback.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/msgpack/fallback.py b/msgpack/fallback.py
index fbd87ba..c422fb5 100644
--- a/msgpack/fallback.py
+++ b/msgpack/fallback.py
@@ -263,16 +263,19 @@ class Unpacker(object):
# The remaining cases.
ret = b''
while len(ret) != n:
+ sliced = n - len(ret)
if self._fb_buf_i == len(buffs):
if self._fb_feeding:
break
- tmp = self.file_like.read(self._read_size)
+ to_read = sliced
+ if self._read_size > to_read:
+ to_read = self._read_size
+ tmp = self.file_like.read(to_read)
if not tmp:
break
buffs.append(tmp)
self._fb_buf_n += len(tmp)
continue
- sliced = n - len(ret)
ret += buffs[self._fb_buf_i][self._fb_buf_o:self._fb_buf_o + sliced]
self._fb_buf_o += sliced
if self._fb_buf_o >= len(buffs[self._fb_buf_i]):