diff options
author | David Robillard <d@drobilla.net> | 2007-07-24 02:05:09 +0000 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2007-07-24 02:05:09 +0000 |
commit | db1861e76aa1a42789c78f37f110cc81c0339a2d (patch) | |
tree | b5fdb57933d628789f5711a48d442019ef0c8bbb /src/libs/gui/ControlGroups.cpp | |
parent | 5c0d12b6a96e1a0468f81ee14e6440f4f6d570bb (diff) | |
download | ingen-db1861e76aa1a42789c78f37f110cc81c0339a2d.tar.gz ingen-db1861e76aa1a42789c78f37f110cc81c0339a2d.tar.bz2 ingen-db1861e76aa1a42789c78f37f110cc81c0339a2d.zip |
Fix crash triggered by closing controls window (twice, sometimes).
git-svn-id: http://svn.drobilla.net/lad/ingen@608 a436a847-0d15-0410-975c-d299462d15a1
Diffstat (limited to 'src/libs/gui/ControlGroups.cpp')
-rw-r--r-- | src/libs/gui/ControlGroups.cpp | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/src/libs/gui/ControlGroups.cpp b/src/libs/gui/ControlGroups.cpp index 14d67870..5098c3f8 100644 --- a/src/libs/gui/ControlGroups.cpp +++ b/src/libs/gui/ControlGroups.cpp @@ -43,6 +43,14 @@ ControlGroup::ControlGroup(BaseObjectType* cobject, const Glib::RefPtr<Gnome::Gl _enable_signal(false) { } + + +ControlGroup::~ControlGroup() +{ + _enable_signal = false; + _control_connection.disconnect(); + _port_model.reset(); +} void @@ -54,7 +62,7 @@ ControlGroup::init(ControlPanel* panel, SharedPtr<PortModel> pm) assert(_port_model); assert(panel); - pm->control_change_sig.connect(sigc::mem_fun(this, &ControlGroup::set_value)); + _control_connection = pm->control_change_sig.connect(sigc::mem_fun(this, &ControlGroup::set_value)); } |