From 85e4963481e26ff2833532a65313ded7ca22e595 Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Sat, 28 Jul 2018 09:29:56 +0100 Subject: [PATCH 1/2] Fixed reliance on equality operator. --- include/etl/flat_map.h | 2 +- include/etl/flat_set.h | 2 +- include/etl/version.h | 10 +++++----- support/Release notes.txt | 4 ++++ 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/include/etl/flat_map.h b/include/etl/flat_map.h index d2c78810..66ed69b4 100644 --- a/include/etl/flat_map.h +++ b/include/etl/flat_map.h @@ -300,7 +300,7 @@ namespace etl std::pair result(i_element, false); // Doesn't already exist? - if ((i_element == end() || (i_element->first != value.first))) + if ((i_element == end()) || TKeyCompare()(i_element->first, value.first) || TKeyCompare()(value.first, i_element->first)) { ETL_ASSERT(!refmap_t::full(), ETL_ERROR(flat_map_full)); diff --git a/include/etl/flat_set.h b/include/etl/flat_set.h index d4dd28c0..bd58aae5 100644 --- a/include/etl/flat_set.h +++ b/include/etl/flat_set.h @@ -233,7 +233,7 @@ namespace etl std::pair result(i_element, false); // Doesn't already exist? - if ((i_element == end() || (*i_element != value))) + if ((i_element == end()) || TKeyCompare()(*i_element, value) || TKeyCompare()(value, *i_element)) { ETL_ASSERT(!refset_t::full(), ETL_ERROR(flat_set_full)); diff --git a/include/etl/version.h b/include/etl/version.h index 69ea1206..671e5301 100644 --- a/include/etl/version.h +++ b/include/etl/version.h @@ -37,13 +37,13 @@ SOFTWARE. /// Definitions of the ETL version ///\ingroup utilities -#define ETL_VERSION "11.14.0" -#define ETL_VERSION_W L"11.14.0" -#define ETL_VERSION_U16 u"11.14.0" -#define ETL_VERSION_U32 U"11.14.0" +#define ETL_VERSION "11.14.1" +#define ETL_VERSION_W L"11.14.1" +#define ETL_VERSION_U16 u"11.14.1" +#define ETL_VERSION_U32 U"11.14.1" #define ETL_VERSION_MAJOR 11 #define ETL_VERSION_MINOR 14 -#define ETL_VERSION_PATCH 0 +#define ETL_VERSION_PATCH 1 #define ETL_VERSION_VALUE ((ETL_VERSION_MAJOR * 10000) + (ETL_VERSION_MINOR * 100) + ETL_VERSION_PATCH) #endif diff --git a/support/Release notes.txt b/support/Release notes.txt index 3d4b9fac..0df6c394 100644 --- a/support/Release notes.txt +++ b/support/Release notes.txt @@ -1,3 +1,7 @@ +=============================================================================== +11.14.1 +Removed flat_set & flat_map reliance on equality. + =============================================================================== 11.14.0 Added tests for limited support for self insert for strings. From fb7eb70c4717f865b04a2402cb469a03df95a3e6 Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Sat, 28 Jul 2018 14:04:33 +0100 Subject: [PATCH 2/2] Fixed reliance on equality operator. --- include/etl/reference_flat_map.h | 2 +- include/etl/reference_flat_set.h | 2 +- include/etl/version.h | 10 +++++----- support/Release notes.txt | 4 ++++ 4 files changed, 11 insertions(+), 7 deletions(-) diff --git a/include/etl/reference_flat_map.h b/include/etl/reference_flat_map.h index 339a8fb3..5ff5a908 100644 --- a/include/etl/reference_flat_map.h +++ b/include/etl/reference_flat_map.h @@ -835,7 +835,7 @@ namespace etl result.first = i_element; // Existing element? - if (value.first != i_element->first) + if (TKeyCompare()(value.first, i_element->first) || TKeyCompare()(i_element->first, value.first)) { // A new one. ETL_ASSERT(!lookup.full(), ETL_ERROR(flat_map_full)); diff --git a/include/etl/reference_flat_set.h b/include/etl/reference_flat_set.h index bcb5a5df..0247ffc5 100644 --- a/include/etl/reference_flat_set.h +++ b/include/etl/reference_flat_set.h @@ -745,7 +745,7 @@ namespace etl result.first = i_element; // Existing element? - if (value != *i_element) + if (TKeyCompare()(value, *i_element) || TKeyCompare()(*i_element, value)) { // A new one. ETL_ASSERT(!lookup.full(), ETL_ERROR(flat_set_full)); diff --git a/include/etl/version.h b/include/etl/version.h index 671e5301..65cec320 100644 --- a/include/etl/version.h +++ b/include/etl/version.h @@ -37,13 +37,13 @@ SOFTWARE. /// Definitions of the ETL version ///\ingroup utilities -#define ETL_VERSION "11.14.1" -#define ETL_VERSION_W L"11.14.1" -#define ETL_VERSION_U16 u"11.14.1" -#define ETL_VERSION_U32 U"11.14.1" +#define ETL_VERSION "11.14.2" +#define ETL_VERSION_W L"11.14.2" +#define ETL_VERSION_U16 u"11.14.2" +#define ETL_VERSION_U32 U"11.14.2" #define ETL_VERSION_MAJOR 11 #define ETL_VERSION_MINOR 14 -#define ETL_VERSION_PATCH 1 +#define ETL_VERSION_PATCH 2 #define ETL_VERSION_VALUE ((ETL_VERSION_MAJOR * 10000) + (ETL_VERSION_MINOR * 100) + ETL_VERSION_PATCH) #endif diff --git a/support/Release notes.txt b/support/Release notes.txt index 0df6c394..07decddd 100644 --- a/support/Release notes.txt +++ b/support/Release notes.txt @@ -1,3 +1,7 @@ +=============================================================================== +11.14.2 +Removed reference_flat_set & reference_flat_map reliance on equality. + =============================================================================== 11.14.1 Removed flat_set & flat_map reliance on equality.