diff --git a/gtk2_ardour/bundle_manager.cc b/gtk2_ardour/bundle_manager.cc index 0719434c86..cde526d7c5 100644 --- a/gtk2_ardour/bundle_manager.cc +++ b/gtk2_ardour/bundle_manager.cc @@ -375,13 +375,14 @@ BundleManager::add_bundle (boost::shared_ptr b) (*i)[_list_model_columns.name] = u->name (); (*i)[_list_model_columns.bundle] = u; - u->Changed.connect (bundle_connections, invalidator (*this), boost::bind (&BundleManager::bundle_changed, this, _1, u), gui_context()); + u->Changed.connect (bundle_connections, invalidator (*this), boost::bind (&BundleManager::bundle_changed, this, _1, boost::weak_ptr (u)), gui_context()); } void -BundleManager::bundle_changed (Bundle::Change c, boost::shared_ptr b) +BundleManager::bundle_changed (Bundle::Change c, boost::weak_ptr wb) { - if ((c & Bundle::NameChanged) == 0) { + boost::shared_ptr b = wb.lock (); + if (!b || 0 == (c & Bundle::NameChanged)) { return; } diff --git a/gtk2_ardour/bundle_manager.h b/gtk2_ardour/bundle_manager.h index 7ba3c7df9f..fc365a0992 100644 --- a/gtk2_ardour/bundle_manager.h +++ b/gtk2_ardour/bundle_manager.h @@ -95,7 +95,7 @@ private: void edit_clicked (); void delete_clicked (); void add_bundle (boost::shared_ptr); - void bundle_changed (ARDOUR::Bundle::Change, boost::shared_ptr); + void bundle_changed (ARDOUR::Bundle::Change, boost::weak_ptr); void set_button_sensitivity (); void row_activated (Gtk::TreeModel::Path const & p, Gtk::TreeViewColumn* c);