Will be much better to call `self._buffer.extend(data)` here, I think (`+=` will copy the list).