From 7701207123891b400c144db880b77dc698a202ea Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 30 Sep 2016 11:07:05 -0500 Subject: [PATCH] push2:small logic fix for destructor, mostly to ensure that the track_mix layout is destroyed Otherwise it is still connected to the ControlProtocol::StripableSelectionChanged signal, even though the event loop specified in the connection has been destroyed. --- libs/surfaces/push2/push2.cc | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/libs/surfaces/push2/push2.cc b/libs/surfaces/push2/push2.cc index 9f1290ec09..484dbcccdb 100644 --- a/libs/surfaces/push2/push2.cc +++ b/libs/surfaces/push2/push2.cc @@ -133,9 +133,14 @@ Push2::Push2 (ARDOUR::Session& s) Push2::~Push2 () { + DEBUG_TRACE (DEBUG::Push2, "push2 control surface object being destroyed\n"); + + /* do this before stopping the event loop, so that we don't get any notifications */ selection_connection.disconnect (); + port_reg_connection.disconnect (); + port_connection.disconnect (); - stop_event_loop (); /* this will call stop_using_device () in Quit request handler */ + stop_using_device (); device_release (); ports_release (); @@ -150,8 +155,13 @@ Push2::~Push2 () scale_layout = 0; delete splash_layout; splash_layout = 0; + delete track_mix_layout; + track_mix_layout = 0; + + stop_event_loop (); } + void Push2::run_event_loop () { -- 2.30.2