From: <sag...@us...> - 2014-01-26 00:32:39
|
Revision: 3586 http://sourceforge.net/p/modplug/code/3586 Author: saga-games Date: 2014-01-26 00:32:32 +0000 (Sun, 26 Jan 2014) Log Message: ----------- [Fix] VST: Poise by One Small Clue should no longer crash if the editor is still open when unloading the plugin. [Mod] OpenMPT: Version is now 1.22.07.16 Modified Paths: -------------- trunk/OpenMPT/common/versionNumber.h trunk/OpenMPT/mptrack/Vstplug.cpp Modified: trunk/OpenMPT/common/versionNumber.h =================================================================== --- trunk/OpenMPT/common/versionNumber.h 2014-01-25 14:41:14 UTC (rev 3585) +++ trunk/OpenMPT/common/versionNumber.h 2014-01-26 00:32:32 UTC (rev 3586) @@ -17,7 +17,7 @@ #define VER_MAJORMAJOR 1 #define VER_MAJOR 22 #define VER_MINOR 07 -#define VER_MINORMINOR 15 +#define VER_MINORMINOR 16 //Version string. For example "1.17.02.28" #define MPT_VERSION_STR VER_STRINGIZE(VER_MAJORMAJOR) "." VER_STRINGIZE(VER_MAJOR) "." VER_STRINGIZE(VER_MINOR) "." VER_STRINGIZE(VER_MINORMINOR) Modified: trunk/OpenMPT/mptrack/Vstplug.cpp =================================================================== --- trunk/OpenMPT/mptrack/Vstplug.cpp 2014-01-25 14:41:14 UTC (rev 3585) +++ trunk/OpenMPT/mptrack/Vstplug.cpp 2014-01-26 00:32:32 UTC (rev 3586) @@ -818,18 +818,6 @@ #endif CriticalSection cs; - // First thing to do, if we don't want to hang in a loop - if (m_Factory.pPluginsList == this) m_Factory.pPluginsList = m_pNext; - if (m_pMixStruct) - { - m_pMixStruct->pMixPlugin = nullptr; - m_pMixStruct->pMixState = nullptr; - m_pMixStruct = nullptr; - } - if (m_pNext) m_pNext->m_pPrev = m_pPrev; - if (m_pPrev) m_pPrev->m_pNext = m_pNext; - m_pPrev = nullptr; - m_pNext = nullptr; if (m_pEditor) { if (m_pEditor->m_hWnd) m_pEditor->OnClose(); @@ -844,6 +832,20 @@ if (m_Effect.numOutputs > 1) Dispatch(effConnectOutput, 1, 0, nullptr, 0); } Suspend(); + + // First thing to do, if we don't want to hang in a loop + if (m_Factory.pPluginsList == this) m_Factory.pPluginsList = m_pNext; + if (m_pMixStruct) + { + m_pMixStruct->pMixPlugin = nullptr; + m_pMixStruct->pMixState = nullptr; + m_pMixStruct = nullptr; + } + if (m_pNext) m_pNext->m_pPrev = m_pPrev; + if (m_pPrev) m_pPrev->m_pNext = m_pNext; + m_pPrev = nullptr; + m_pNext = nullptr; + CVstPlugin::Dispatch(effClose, 0, 0, nullptr, 0); if(m_hLibrary) { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |