diff --git a/libs/pbd/pbd/search_path.h b/libs/pbd/pbd/search_path.h index 86ab5cdc64..74ac764dc0 100644 --- a/libs/pbd/pbd/search_path.h +++ b/libs/pbd/pbd/search_path.h @@ -90,12 +90,12 @@ public: /** * Concatenate another Searchpath onto this. */ - LIBPBD_TEMPLATE_MEMBER_API Searchpath& operator+ (const Searchpath& other); + LIBPBD_TEMPLATE_MEMBER_API const Searchpath operator+ (const Searchpath& other); /** * Add another path to the search path. */ - LIBPBD_TEMPLATE_MEMBER_API Searchpath& operator+ (const std::string& directory_path); + LIBPBD_TEMPLATE_MEMBER_API const Searchpath operator+ (const std::string& directory_path); /** * Remove all the directories in path from this. diff --git a/libs/pbd/search_path.cc b/libs/pbd/search_path.cc index 44438cc85c..1d931a546d 100644 --- a/libs/pbd/search_path.cc +++ b/libs/pbd/search_path.cc @@ -124,19 +124,16 @@ Searchpath::operator+= (const std::string& directory_path) return *this; } -Searchpath& +const Searchpath Searchpath::operator+ (const std::string& directory_path) { - add_directory (directory_path); - return *this; + return Searchpath (*this) += directory_path; } -Searchpath& +const Searchpath Searchpath::operator+ (const Searchpath& spath) { - // concatenate paths into new Searchpath - insert(end(), spath.begin(), spath.end()); - return *this; + return Searchpath (*this) += spath; } Searchpath&