diff --git a/microschc/binary/buffer.py b/microschc/binary/buffer.py index f62396a..9d92d4a 100644 --- a/microschc/binary/buffer.py +++ b/microschc/binary/buffer.py @@ -273,6 +273,10 @@ def __add__(self, other: 'Buffer') -> 'Buffer': left:Buffer = self right:Buffer = other + if right.length == 0: + new_buffer: Buffer = left.copy() + return new_buffer + # Calculate new length new_length: int = left.length + right.length diff --git a/tests/binary/test_buffer.py b/tests/binary/test_buffer.py index 99dc9de..f1ff8a7 100644 --- a/tests/binary/test_buffer.py +++ b/tests/binary/test_buffer.py @@ -325,6 +325,11 @@ def test_add(): left_right: Buffer = left + right expected: Buffer = Buffer(content=b'\x00\x8a\xf9\x10', length=29, padding=Padding.RIGHT) assert left_right == expected + + left: Buffer = Buffer(content=b'\x00\x8a\xf8', length=23, padding=Padding.RIGHT) + right: Buffer = Buffer(content=b'', length=0) + left_right: Buffer = left + right + assert left_right == left def test_or(): # 0x08 0x68