- fixed crash on setStateInformation/setCurrentStateInformation

- fixed crash on getStateInformation/getCurrentStateInformation
This commit is contained in:
2023-05-02 19:47:51 +02:00
parent 764f5fdf74
commit c9c06c9d97
+8 -8
View File
@@ -707,7 +707,7 @@ void JaySynthAudioProcessor::commitEditBuffer()
void JaySynthAudioProcessor::patch2xml(XmlElement *xml, JaySynthSound const *patch) void JaySynthAudioProcessor::patch2xml(XmlElement *xml, JaySynthSound const *patch)
{ {
ScopedPointer<XmlElement> xml_patch = xml->createNewChildElement("Patch"); XmlElement *xml_patch = xml->createNewChildElement("Patch");
xml_patch->setAttribute ("NAME", patch->getName()); xml_patch->setAttribute ("NAME", patch->getName());
for (int i=0; i < SYNTH_NUM_PARAMS; i++) for (int i=0; i < SYNTH_NUM_PARAMS; i++)
{ {
@@ -739,10 +739,10 @@ void JaySynthAudioProcessor::xml2patch(const XmlElement *xml, JaySynthSound *pat
void JaySynthAudioProcessor::bank2xml(XmlElement *xml) void JaySynthAudioProcessor::bank2xml(XmlElement *xml)
{ {
ScopedPointer<XmlElement> xml_bank = xml->createNewChildElement("Bank"); XmlElement *xml_bank = xml->createNewChildElement("Bank");
for (int i=0; i < NUM_PROGRAMS; i++) for (int i=0; i < NUM_PROGRAMS; i++)
{ {
ScopedPointer<XmlElement> xml_program = xml_bank->createNewChildElement (String("Program_") + String(i)); XmlElement *xml_program = xml_bank->createNewChildElement (String("Program_") + String(i));
JaySynthSound *pPatch = &patches[i]; JaySynthSound *pPatch = &patches[i];
xml_program->setAttribute ("ID", i); xml_program->setAttribute ("ID", i);
patch2xml(xml_program, pPatch); patch2xml(xml_program, pPatch);
@@ -778,7 +778,7 @@ void JaySynthAudioProcessor::getStateInformation (MemoryBlock& destData)
commitEditBuffer(); commitEditBuffer();
// Create an outer XML element.. // Create an outer XML element..
XmlElement *xml = new XmlElement("JSynth"); ScopedPointer <XmlElement> xml = new XmlElement("JSynth");
bank2xml(xml); bank2xml(xml);
setCurrentProgram(getCurrentProgram()); setCurrentProgram(getCurrentProgram());
@@ -814,11 +814,11 @@ void JaySynthAudioProcessor::setStateInformation (const void* data, int sizeInBy
{ {
if (xml->hasTagName ("JSynth")) if (xml->hasTagName ("JSynth"))
{ {
xml = xml->getFirstChildElement(); XmlElement *xml2 = xml->getFirstChildElement();
if (xml->hasTagName ("Bank")) if (xml2->hasTagName ("Bank"))
{ {
xml = xml->getFirstChildElement(); XmlElement *xml3 = xml2->getFirstChildElement();
xml2bank(xml); xml2bank(xml3);
} }
} }
setCurrentProgram(getCurrentProgram()); setCurrentProgram(getCurrentProgram());