Skip to content

Commit d34f62f

Browse files
committed
Make use of the fact that DataOutput's buffer is never None
We initialize the buffer at the constructor and never set it to None on any of the code paths. Therefore, None checks are not necessary.
1 parent bbe3a99 commit d34f62f

File tree

2 files changed

+8
-14
lines changed

2 files changed

+8
-14
lines changed

hazelcast/serialization/output.py

Lines changed: 6 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -119,8 +119,6 @@ def write_object(self, val):
119119
self._service.write_object(self, val)
120120

121121
def to_byte_array(self):
122-
if self._buffer is None or self._pos == 0:
123-
return bytearray()
124122
return self._buffer[:self._pos]
125123

126124
def is_big_endian(self):
@@ -146,18 +144,14 @@ def _write_array_fnc(self, val, item_write_fnc):
146144

147145
def _ensure_available(self, length):
148146
if self._available() < length:
149-
if self._buffer is not None:
150-
buffer_length = len(self._buffer)
151-
new_length = max(buffer_length << 1, buffer_length + length)
152-
new_buffer = bytearray(new_length)
153-
new_buffer[:self._pos] = self._buffer[:self._pos]
154-
self._buffer = new_buffer
155-
else:
156-
new_length = length * 2 if length > self._init_size // 2 else self._init_size
157-
self._buffer = bytearray(new_length)
147+
buffer_length = len(self._buffer)
148+
new_length = max(buffer_length << 1, buffer_length + length)
149+
new_buffer = bytearray(new_length)
150+
new_buffer[:self._pos] = self._buffer[:self._pos]
151+
self._buffer = new_buffer
158152

159153
def _available(self):
160-
return len(self._buffer) - self._pos if self._buffer is not None else 0
154+
return len(self._buffer) - self._pos
161155

162156
def __repr__(self):
163157
from binascii import hexlify

tests/serialization/serialization_test.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ def test_python_pickle_serialization_with_super_type(self):
6363
self.assertEqual(obj, obj2)
6464

6565
def test_null_data(self):
66-
data = Data()
66+
data = Data(bytearray(0))
6767
obj = self.service.to_object(data)
6868
self.assertIsNone(obj)
6969

@@ -73,7 +73,7 @@ def test_none_serialize(self):
7373
self.assertIsNone(data)
7474

7575
def test_serialize_data(self):
76-
data = Data()
76+
data = Data(bytearray(0))
7777
obj = self.service.to_data(data)
7878
self.assertTrue(isinstance(obj, Data))
7979

0 commit comments

Comments
 (0)