Skip to content

Commit

Permalink
helper: Buffer(size) argument is only used for initial size
Browse files Browse the repository at this point in the history
Signed-off-by: Hiroshi Miura <miurahr@linux.com>
  • Loading branch information
miurahr committed Aug 3, 2020
1 parent 7b8070a commit 34a5b61
Showing 1 changed file with 2 additions and 13 deletions.
15 changes: 2 additions & 13 deletions py7zr/helpers.py
Expand Up @@ -367,19 +367,13 @@ class BufferOverflow(Exception):
class Buffer:

def __init__(self, size: int = 16):
self._size = size
self._buf = bytearray(size)
self._buflen = 0
self.view = memoryview(self._buf[0:0])

def add(self, data: Union[bytes, bytearray, memoryview]):
length = len(data)
if length + self._buflen > self._size:
# extend buffer
self._buf = self._buf[:self._buflen] + data
self._size = self._buflen + length
else:
self._buf[self._buflen:self._buflen + length] = data
self._buf[self._buflen:] = data
self._buflen += length
self.view = memoryview(self._buf[0:self._buflen])

Expand All @@ -389,12 +383,7 @@ def reset(self) -> None:

def set(self, data: Union[bytes, bytearray, memoryview]) -> None:
length = len(data)
if length > self._size:
# extend buffer
self._buf = bytearray(data)
self._size = length
else:
self._buf[0:length] = data
self._buf[0:] = data
self._buflen = length
self.view = memoryview(self._buf[0:length])

Expand Down

0 comments on commit 34a5b61

Please sign in to comment.