mirror of
https://github.com/msgpack/msgpack-python.git
synced 2025-10-25 14:44:10 +00:00
fallback: _fb_read: do a big read, when we need a big read
This commit is contained in:
parent
952eb9fc53
commit
b334d441c3
1 changed files with 5 additions and 2 deletions
|
|
@ -263,16 +263,19 @@ class Unpacker(object):
|
||||||
# The remaining cases.
|
# The remaining cases.
|
||||||
ret = b''
|
ret = b''
|
||||||
while len(ret) != n:
|
while len(ret) != n:
|
||||||
|
sliced = n - len(ret)
|
||||||
if self._fb_buf_i == len(buffs):
|
if self._fb_buf_i == len(buffs):
|
||||||
if self._fb_feeding:
|
if self._fb_feeding:
|
||||||
break
|
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:
|
if not tmp:
|
||||||
break
|
break
|
||||||
buffs.append(tmp)
|
buffs.append(tmp)
|
||||||
self._fb_buf_n += len(tmp)
|
self._fb_buf_n += len(tmp)
|
||||||
continue
|
continue
|
||||||
sliced = n - len(ret)
|
|
||||||
ret += buffs[self._fb_buf_i][self._fb_buf_o:self._fb_buf_o + sliced]
|
ret += buffs[self._fb_buf_i][self._fb_buf_o:self._fb_buf_o + sliced]
|
||||||
self._fb_buf_o += sliced
|
self._fb_buf_o += sliced
|
||||||
if self._fb_buf_o >= len(buffs[self._fb_buf_i]):
|
if self._fb_buf_o >= len(buffs[self._fb_buf_i]):
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue