From 2c679132454fc3e4fdad28b1a87f11e923c236c6 Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Fri, 7 Feb 2014 17:16:13 -0500 Subject: Fix egregious logic bug in FileSource::removable() and introduce FileSource::is_stub() to hide logic for deciding if a source (file) is a stub --- libs/ardour/file_source.cc | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'libs') diff --git a/libs/ardour/file_source.cc b/libs/ardour/file_source.cc index 0921498186..c6f3a9cd5d 100644 --- a/libs/ardour/file_source.cc +++ b/libs/ardour/file_source.cc @@ -101,7 +101,7 @@ FileSource::removable () const { bool r = ((_flags & Removable) && ((_flags & RemoveAtDestroy) || - ((_flags & RemovableIfEmpty) && empty() == 0))); + ((_flags & RemovableIfEmpty) && empty()))); return r; } @@ -589,3 +589,21 @@ FileSource::inc_use_count () Source::inc_use_count (); } +bool +FileSource::is_stub () const +{ + if (!empty()) { + return false; + } + + if (!removable()) { + return false; + } + + if (Glib::file_test (_path, Glib::FILE_TEST_EXISTS)) { + return false; + } + + return true; +} + -- cgit v1.2.3