summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Emmas <johne53@tiscali.co.uk>2016-08-28 10:26:02 +0100
committerJohn Emmas <johne53@tiscali.co.uk>2016-08-28 10:26:02 +0100
commit4d7eb04cf6f2857955528b6e24e7b6f5e21fc7d4 (patch)
tree1cefde4a3549ad6592e7bf6168164cbd3facd846
parent845fb839e825b60876ef2aceb97fa23c4f97cef4 (diff)
Fix a crash when toggling back and forth between a generic plugin GUI window and a VST plugin's own GUI
-rw-r--r--gtk2_ardour/windows_vst_plugin_ui.cc2
-rw-r--r--libs/fst/vstwin.c3
2 files changed, 5 insertions, 0 deletions
diff --git a/gtk2_ardour/windows_vst_plugin_ui.cc b/gtk2_ardour/windows_vst_plugin_ui.cc
index 5281890963..7f14819986 100644
--- a/gtk2_ardour/windows_vst_plugin_ui.cc
+++ b/gtk2_ardour/windows_vst_plugin_ui.cc
@@ -58,6 +58,8 @@ WindowsVSTPluginUI::WindowsVSTPluginUI (boost::shared_ptr<PluginInsert> pi, boos
WindowsVSTPluginUI::~WindowsVSTPluginUI ()
{
+ fst_destroy_editor (_vst->state());
+
// plugin destructor destroys the custom GUI, via Windows fun-and-games,
// and then our PluginUIWindow does the rest
}
diff --git a/libs/fst/vstwin.c b/libs/fst/vstwin.c
index 3a1f624934..ba3187684b 100644
--- a/libs/fst/vstwin.c
+++ b/libs/fst/vstwin.c
@@ -374,6 +374,9 @@ fst_exit (void)
int
fst_run_editor (VSTState* fst, void* window_parent)
{
+ /* For safety, remove any pre-existing editor window */
+ fst_destroy_editor (fst);
+
if (fst->windows_window == NULL) {
HMODULE hInst;
HWND window;