mirror of
https://github.com/robbert-vdh/yabridge.git
synced 2026-05-07 03:50:11 +02:00
Increase the default serialization buffer size
Setting VST2 plugin parameters would sometimes result in allocations.
This commit is contained in:
@@ -163,7 +163,7 @@ inline void write_object(Socket& socket,
|
||||
*/
|
||||
template <typename T, typename Socket>
|
||||
inline void write_object(Socket& socket, const T& object) {
|
||||
SerializationBuffer<64> buffer{};
|
||||
SerializationBuffer<256> buffer{};
|
||||
write_object(socket, object, buffer);
|
||||
}
|
||||
|
||||
@@ -238,7 +238,7 @@ inline T read_object(Socket& socket, SerializationBufferBase& buffer) {
|
||||
*/
|
||||
template <typename T, typename Socket>
|
||||
inline T& read_object(Socket& socket, T& object) {
|
||||
SerializationBuffer<64> buffer{};
|
||||
SerializationBuffer<256> buffer{};
|
||||
return read_object<T>(socket, object, buffer);
|
||||
}
|
||||
|
||||
@@ -251,7 +251,7 @@ inline T& read_object(Socket& socket, T& object) {
|
||||
template <typename T, typename Socket>
|
||||
inline T read_object(Socket& socket) {
|
||||
T object;
|
||||
SerializationBuffer<64> buffer{};
|
||||
SerializationBuffer<256> buffer{};
|
||||
read_object<T>(socket, object, buffer);
|
||||
|
||||
return object;
|
||||
@@ -504,7 +504,7 @@ class SocketHandler {
|
||||
*/
|
||||
template <typename T, std::invocable<T&, SerializationBufferBase&> F>
|
||||
void receive_multi(F&& callback) {
|
||||
SerializationBuffer<64> buffer{};
|
||||
SerializationBuffer<256> buffer{};
|
||||
T object;
|
||||
while (true) {
|
||||
try {
|
||||
|
||||
@@ -161,7 +161,7 @@ class Vst3MessageHandler : public AdHocSocketHandler<Thread> {
|
||||
const T& object,
|
||||
typename T::Response& response_object,
|
||||
std::optional<std::pair<Vst3Logger&, bool>> logging) {
|
||||
SerializationBuffer<64> buffer{};
|
||||
SerializationBuffer<256> buffer{};
|
||||
return receive_into(object, response_object, std::move(logging),
|
||||
buffer);
|
||||
}
|
||||
@@ -217,7 +217,7 @@ class Vst3MessageHandler : public AdHocSocketHandler<Thread> {
|
||||
// every time, but on the audio processor side we store the
|
||||
// actual variant within an object and we then use some hackery
|
||||
// to always keep the large process data object in memory.
|
||||
thread_local SerializationBuffer<64> persistent_buffer{};
|
||||
thread_local SerializationBuffer<256> persistent_buffer{};
|
||||
thread_local Request persistent_object;
|
||||
|
||||
auto& request =
|
||||
@@ -506,7 +506,7 @@ class Vst3Sockets : public Sockets {
|
||||
typename T::Response& response_object,
|
||||
size_t instance_id,
|
||||
std::optional<std::pair<Vst3Logger&, bool>> logging) {
|
||||
thread_local SerializationBuffer<64> audio_processor_buffer{};
|
||||
thread_local SerializationBuffer<256> audio_processor_buffer{};
|
||||
|
||||
return audio_processor_sockets.at(instance_id)
|
||||
.receive_into(object, response_object, logging,
|
||||
|
||||
Reference in New Issue
Block a user