free memory of external plugins on GUI close (major mem leak).
There is at least one known plugin that has a problem with this (custom thread race condition) but it also crashes in other hosts: http://www.drumgizmo.org/wiki/doku.php?id=bugs&do=showcaselink&showid=8&project=drumgizmo tested to be working with various nedko, falktx and x42 plugins
This commit is contained in:
@@ -116,6 +116,10 @@ LV2PluginUI::on_external_ui_closed(void* controller)
|
|||||||
LV2PluginUI* me = (LV2PluginUI*)controller;
|
LV2PluginUI* me = (LV2PluginUI*)controller;
|
||||||
me->_screen_update_connection.disconnect();
|
me->_screen_update_connection.disconnect();
|
||||||
me->_external_ui_ptr = NULL;
|
me->_external_ui_ptr = NULL;
|
||||||
|
#if 1
|
||||||
|
suil_instance_free((SuilInstance*)me->_inst);
|
||||||
|
me->_inst = NULL;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@@ -450,9 +454,12 @@ LV2PluginUI::on_window_hide()
|
|||||||
|
|
||||||
if (_external_ui_ptr) {
|
if (_external_ui_ptr) {
|
||||||
LV2_EXTERNAL_UI_HIDE(_external_ui_ptr);
|
LV2_EXTERNAL_UI_HIDE(_external_ui_ptr);
|
||||||
//slv2_ui_instance_get_descriptor(_inst)->cleanup(_inst);
|
_screen_update_connection.disconnect();
|
||||||
//_external_ui_ptr = NULL;
|
_external_ui_ptr = NULL;
|
||||||
//_screen_update_connection.disconnect();
|
#if 1
|
||||||
|
suil_instance_free((SuilInstance*)_inst);
|
||||||
|
_inst = NULL;
|
||||||
|
#endif
|
||||||
} else {
|
} else {
|
||||||
lv2ui_free();
|
lv2ui_free();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user