diff --git a/include/etl/observer.h b/include/etl/observer.h index 1cc9786a..1cd9b3f0 100644 --- a/include/etl/observer.h +++ b/include/etl/observer.h @@ -133,8 +133,9 @@ namespace etl //***************************************************************** /// Remove a particular observer from the list. ///\param observer A reference to the observer. + ///\return true if the observer was removed, false if not. //***************************************************************** - void remove_observer(TObserver& observer) + bool remove_observer(TObserver& observer) { // See if we have it in our list. typename Observer_List::iterator i_observer = std::find(observer_list.begin(), @@ -146,6 +147,11 @@ namespace etl { // Erase it. observer_list.erase(i_observer); + return true; + } + else + { + return false; } } diff --git a/include/etl/version.h b/include/etl/version.h index 5c7e5d03..caaedbcf 100644 --- a/include/etl/version.h +++ b/include/etl/version.h @@ -37,10 +37,10 @@ SOFTWARE. /// Definitions of the ETL version ///\ingroup utilities -#define ETL_VERSION "11.13.1" +#define ETL_VERSION "11.13.2" #define ETL_VERSION_MAJOR 11 #define ETL_VERSION_MINOR 13 -#define ETL_VERSION_PATCH 1 +#define ETL_VERSION_PATCH 2 #endif diff --git a/support/Release notes.txt b/support/Release notes.txt index 94460ab2..e9202643 100644 --- a/support/Release notes.txt +++ b/support/Release notes.txt @@ -1,3 +1,8 @@ +=============================================================================== +11.13.2 +Protected destructor for some FSM classes. +Observer's remove_observer returns bool. + =============================================================================== 11.13.1 Fixed vector of pointer typedefs diff --git a/test/test_observer.cpp b/test/test_observer.cpp index f6efc6b4..b23a1359 100644 --- a/test/test_observer.cpp +++ b/test/test_observer.cpp @@ -424,7 +424,11 @@ namespace CHECK_THROW(observable.add_observer(observer5), etl::observer_list_full); - observable.remove_observer(observer3); + CHECK(observable.remove_observer(observer3)); + CHECK_EQUAL(size_t(3), observable.number_of_observers()); + + // Try again. + CHECK(!observable.remove_observer(observer3)); CHECK_EQUAL(size_t(3), observable.number_of_observers()); observable.clear_observers();