diff options
author | Tim Mayberry <mojofunk@gmail.com> | 2014-07-09 11:03:21 +1000 |
---|---|---|
committer | Tim Mayberry <mojofunk@gmail.com> | 2015-08-18 15:09:44 +1000 |
commit | ea32eecf3d2fa22c87350a3b198f8c13707627c6 (patch) | |
tree | e084905f204892f28aada0f480d17e8bdb8f79d0 | |
parent | 6847b59721546cbd20eaebf8db34f5d241aa9585 (diff) |
Fix Searchpath::operator+ to return by value rather than reference and not modify *this
ladspa_search_path was the only function using this API and it is unaffected by
the change
-rw-r--r-- | libs/pbd/pbd/search_path.h | 4 | ||||
-rw-r--r-- | libs/pbd/search_path.cc | 11 |
2 files changed, 6 insertions, 9 deletions
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& |