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