From ec867690b7fb4a8dde011ec5a929e2ed22fda74b Mon Sep 17 00:00:00 2001 From: reuk Date: Mon, 14 Feb 2022 12:27:06 +0000 Subject: [PATCH] VST3: Fix leak when setting/getting state via extensions mechanism --- .../format_types/juce_VST3PluginFormat.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp index 05997fc7cd..90121aa093 100644 --- a/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp +++ b/modules/juce_audio_processors/format_types/juce_VST3PluginFormat.cpp @@ -2937,7 +2937,7 @@ public: MemoryBlock getStateForPresetFile() const { - VSTComSmartPtr memoryStream = new Steinberg::MemoryStream(); + VSTComSmartPtr memoryStream (new Steinberg::MemoryStream(), false); if (memoryStream == nullptr || holder->component == nullptr) return {}; @@ -2955,8 +2955,8 @@ public: bool setStateFromPresetFile (const MemoryBlock& rawData) const { - MemoryBlock rawDataCopy (rawData); - VSTComSmartPtr memoryStream = new Steinberg::MemoryStream (rawDataCopy.getData(), (int) rawDataCopy.getSize()); + auto rawDataCopy = rawData; + VSTComSmartPtr memoryStream (new Steinberg::MemoryStream (rawDataCopy.getData(), (int) rawDataCopy.getSize()), false); if (memoryStream == nullptr || holder->component == nullptr) return false;