diff options
author | INADA Naoki <methane@users.noreply.github.com> | 2018-02-23 11:52:48 +0900 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-23 11:52:48 +0900 |
commit | f38c1a3674b7623080cb774b56ede21383bde04a (patch) | |
tree | 62c7e154d85cd49f0e5b38652cfa4b3d4c087388 /msgpack/fallback.py | |
parent | fbaa1360be67672f855dd6337e4137f2edf7ade6 (diff) | |
download | msgpack-python-f38c1a3674b7623080cb774b56ede21383bde04a.tar.gz |
Fix Unpacker.feed() drops unused data in buffer. (#289)
Fixes #287
Diffstat (limited to 'msgpack/fallback.py')
-rw-r--r-- | msgpack/fallback.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/msgpack/fallback.py b/msgpack/fallback.py index 7e40686..e9108d2 100644 --- a/msgpack/fallback.py +++ b/msgpack/fallback.py @@ -289,8 +289,13 @@ class Unpacker(object): view = _get_data_from_buffer(next_bytes) if (len(self._buffer) - self._buff_i + len(view) > self._max_buffer_size): raise BufferFull - del self._buffer[:self._buff_i] - self._buff_i = 0 + + # Strip buffer before checkpoint before reading file. + if self._buf_checkpoint > 0: + del self._buffer[:self._buf_checkpoint] + self._buff_i -= self._buf_checkpoint + self._buf_checkpoint = 0 + self._buffer += view def _consume(self): |