summaryrefslogtreecommitdiff
path: root/libs/ardour/region.cc
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2009-12-12 15:02:15 +0000
committerPaul Davis <paul@linuxaudiosystems.com>2009-12-12 15:02:15 +0000
commit8687895abba4209a6de8d8a8fc1bda5996f0d875 (patch)
treea2123e967e7c9906d787a5cec94ec53894d32734 /libs/ardour/region.cc
parent0c80b01f4724922a95d22fc441d6854da001c442 (diff)
remove using namespace sigc everywhere to ensure clarity over which bind/mem_fun is being used; make Config::map_parameters take a boost::function rather than a sigc::slot ; continue debugging crash caused by regionviews not tracking their Region's lifetime
git-svn-id: svn://localhost/ardour2/branches/3.0@6357 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'libs/ardour/region.cc')
-rw-r--r--libs/ardour/region.cc9
1 files changed, 5 insertions, 4 deletions
diff --git a/libs/ardour/region.cc b/libs/ardour/region.cc
index 33baa12d20..2c4d8004cf 100644
--- a/libs/ardour/region.cc
+++ b/libs/ardour/region.cc
@@ -111,7 +111,7 @@ Region::Region (boost::shared_ptr<Source> src, nframes_t start, nframes_t length
_sources.push_back (src);
_master_sources.push_back (src);
- src->GoingAway.connect (bind (mem_fun (*this, &Region::source_deleted), src));
+ src->GoingAway.connect (sigc::bind (sigc::mem_fun (*this, &Region::source_deleted), src));
assert(_sources.size() > 0);
_positional_lock_style = AudioTime;
@@ -341,7 +341,7 @@ Region::~Region ()
{
DEBUG_TRACE (DEBUG::Destruction, string_compose ("Region %1 destructor @ %2\n", _name, this));
notify_callbacks ();
- GoingAway (); /* EMIT SIGNAL */
+ drop_references ();
}
void
@@ -1419,6 +1419,7 @@ void
Region::source_deleted (boost::shared_ptr<Source>)
{
_sources.clear ();
+ drop_references ();
}
vector<string>
@@ -1587,14 +1588,14 @@ Region::use_sources (SourceList const & s)
for (SourceList::const_iterator i = s.begin (); i != s.end(); ++i) {
_sources.push_back (*i);
- (*i)->GoingAway.connect (bind (mem_fun (*this, &Region::source_deleted), *i));
+ (*i)->GoingAway.connect (sigc::bind (sigc::mem_fun (*this, &Region::source_deleted), *i));
unique_srcs.insert (*i);
}
for (SourceList::const_iterator i = s.begin (); i != s.end(); ++i) {
_master_sources.push_back (*i);
if (unique_srcs.find (*i) == unique_srcs.end()) {
- (*i)->GoingAway.connect (bind (mem_fun (*this, &Region::source_deleted), *i));
+ (*i)->GoingAway.connect (sigc::bind (sigc::mem_fun (*this, &Region::source_deleted), *i));
}
}
}