1
0
Fork 0
mirror of https://github.com/juce-framework/JUCE.git synced 2026-02-08 04:20:09 +00:00

VST3: Fixed a memory leak

This commit is contained in:
Tom Poole 2019-03-25 17:22:35 +00:00
parent ba2575a4d3
commit e821dd9b8e

View file

@ -2296,7 +2296,7 @@ public:
if (head != nullptr)
{
ComSmartPtr<Steinberg::MemoryStream> componentStream (createMemoryStreamForState (*head, "IComponent"));
auto componentStream (createMemoryStreamForState (*head, "IComponent"));
if (componentStream != nullptr && holder->component != nullptr)
holder->component->setState (componentStream);
@ -2310,7 +2310,7 @@ public:
editController->setComponentState (componentStream);
}
ComSmartPtr<Steinberg::MemoryStream> controllerStream = createMemoryStreamForState (*head, "IEditController");
auto controllerStream (createMemoryStreamForState (*head, "IEditController"));
if (controllerStream != nullptr)
editController->setState (controllerStream);
@ -2515,23 +2515,22 @@ private:
}
}
static Steinberg::MemoryStream* createMemoryStreamForState (XmlElement& head, StringRef identifier)
static ComSmartPtr<Steinberg::MemoryStream> createMemoryStreamForState (XmlElement& head, StringRef identifier)
{
Steinberg::MemoryStream* stream = nullptr;
if (auto* state = head.getChildByName (identifier))
{
MemoryBlock mem;
if (mem.fromBase64Encoding (state->getAllSubText()))
{
stream = new Steinberg::MemoryStream();
ComSmartPtr<Steinberg::MemoryStream> stream (new Steinberg::MemoryStream(), false);
stream->setSize ((TSize) mem.getSize());
mem.copyTo (stream->getData(), 0, mem.getSize());
return stream;
}
}
return stream;
return nullptr;
}
ComSmartPtr<ParamValueQueueList> inputParameterChanges, outputParameterChanges;