mirror of
https://github.com/hyperion-project/hyperion.ng.git
synced 2025-03-01 10:33:28 +00:00
fix: multiple memory leaks and segfault issues in Flatbuffer Forwarder. (#709)
This commit is contained in:
@@ -66,7 +66,7 @@ void FlatBufferConnection::readData()
|
||||
if((uint32_t) _receiveBuffer.size() < messageSize + 4) return;
|
||||
|
||||
// extract message only and remove header + msg from buffer :: QByteArray::remove() does not return the removed data
|
||||
const QByteArray msg = _receiveBuffer.right(messageSize);
|
||||
const QByteArray msg = _receiveBuffer.mid(4, messageSize);
|
||||
_receiveBuffer.remove(0, messageSize + 4);
|
||||
|
||||
const uint8_t* msgData = reinterpret_cast<const uint8_t*>(msg.constData());
|
||||
@@ -117,6 +117,7 @@ void FlatBufferConnection::setColor(const ColorRgb & color, int priority, int du
|
||||
|
||||
_builder.Finish(req);
|
||||
sendMessage(_builder.GetBufferPointer(), _builder.GetSize());
|
||||
_builder.Clear();
|
||||
}
|
||||
|
||||
void FlatBufferConnection::setImage(const Image<ColorRgb> &image)
|
||||
@@ -128,6 +129,7 @@ void FlatBufferConnection::setImage(const Image<ColorRgb> &image)
|
||||
|
||||
_builder.Finish(req);
|
||||
sendMessage(_builder.GetBufferPointer(), _builder.GetSize());
|
||||
_builder.Clear();
|
||||
}
|
||||
|
||||
void FlatBufferConnection::clear(int priority)
|
||||
@@ -137,6 +139,7 @@ void FlatBufferConnection::clear(int priority)
|
||||
|
||||
_builder.Finish(req);
|
||||
sendMessage(_builder.GetBufferPointer(), _builder.GetSize());
|
||||
_builder.Clear();
|
||||
}
|
||||
|
||||
void FlatBufferConnection::clearAll()
|
||||
@@ -193,7 +196,6 @@ void FlatBufferConnection::sendMessage(const uint8_t* buffer, uint32_t size)
|
||||
count += _socket.write(reinterpret_cast<const char *>(header), 4);
|
||||
count += _socket.write(reinterpret_cast<const char *>(buffer), size);
|
||||
_socket.flush();
|
||||
_builder.Clear();
|
||||
}
|
||||
|
||||
bool FlatBufferConnection::parseReply(const hyperionnet::Reply *reply)
|
||||
|
Reference in New Issue
Block a user