Increase the default serialization buffer size

Setting VST2 plugin parameters would sometimes result in allocations.
This commit is contained in:
Robbert van der Helm
2021-05-23 16:44:34 +02:00
parent 29e0a0fd36
commit 77d43e4f08
2 changed files with 7 additions and 7 deletions
+4 -4
View File
@@ -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 {
+3 -3
View File
@@ -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,