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