Skip to content

Commit c60e598

Browse files
committed
Don't allocate packet buf until connected
1 parent 0f54db3 commit c60e598

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

adafruit_ble_midi.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,8 @@ class MIDIService(Service):
7979

8080
def __init__(self, **kwargs):
8181
super().__init__(**kwargs)
82-
self._in_buffer = bytearray(self._raw.packet_size)
82+
# Defer creating _in_buffer until we're definitely connected.
83+
self._in_buffer = None
8384
self._out_buffer = None
8485
shared_buffer = memoryview(bytearray(4))
8586
self._buffers = [
@@ -102,6 +103,8 @@ def readinto(self, buf, length):
102103
"""Reads up to ``length`` bytes into ``buf`` starting at index 0.
103104
104105
Returns the number of bytes written into ``buf``."""
106+
if self._in_buffer is None:
107+
self._in_buffer = bytearray(self._raw.packet_size)
105108
i = 0
106109
while i < length:
107110
if self._in_index < self._in_length:
@@ -119,8 +122,6 @@ def readinto(self, buf, length):
119122
buf[i] = byte
120123
i += 1
121124
else:
122-
if len(self._in_buffer) < self._raw.packet_size:
123-
self._in_buffer = bytearray(self._raw.packet_size)
124125
self._in_length = self._raw.readinto(self._in_buffer)
125126
if self._in_length == 0:
126127
break

0 commit comments

Comments
 (0)