Fix heap-use-after-free when toggling manual pin-control
When toggling "Manual Config", Route::customize_plugin_insert() or Route::reset_plugin_insert() emits processors_changed. This destroyed the widget from which the change was initiated, in ppw.clear(), leading to a use-after-free in ArdourButton::on_button_release_event(_GdkEventButton*) ../libs/widgets/ardour_button.cc:995 The PluginPinDialog does not need to refill the widget list when manual config is toggled, only the PluginPinWidget itself needs to updated.
This commit is contained in:
parent
6261bb3a40
commit
71a83ed199
@ -2147,8 +2147,11 @@ PluginPinDialog::map_height (Gtk::Allocation&)
|
|||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
PluginPinDialog::route_processors_changed (ARDOUR::RouteProcessorChange)
|
PluginPinDialog::route_processors_changed (ARDOUR::RouteProcessorChange c)
|
||||||
{
|
{
|
||||||
|
if (c.type == RouteProcessorChange::CustomPinChange) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
ppw.clear ();
|
ppw.clear ();
|
||||||
_height_mapped = false;
|
_height_mapped = false;
|
||||||
scroller->remove ();
|
scroller->remove ();
|
||||||
|
Loading…
Reference in New Issue
Block a user