From 7c3d8490c4669496ea6b015983d814dcdfb730ad Mon Sep 17 00:00:00 2001 From: John Wellbelove Date: Fri, 13 May 2022 14:43:36 +0100 Subject: [PATCH] indirect_vector updates from sanitizer results --- include/etl/indirect_vector.h | 9 +-------- test/test_indirect_vector.cpp | 12 ++++++++---- test/test_indirect_vector_external_buffer.cpp | 8 ++++++-- 3 files changed, 15 insertions(+), 14 deletions(-) diff --git a/include/etl/indirect_vector.h b/include/etl/indirect_vector.h index 63723f3e..49683c40 100644 --- a/include/etl/indirect_vector.h +++ b/include/etl/indirect_vector.h @@ -454,13 +454,7 @@ namespace etl //********************************************************************* iterator begin() { - etl::ivector& ivr = lookup; - - bool e = ivr.empty(); - - typename etl::ivector::iterator itr = ivr.begin(); - - return iterator(itr); + return iterator(lookup.begin()); } //********************************************************************* @@ -1214,7 +1208,6 @@ namespace etl #endif ~iindirect_vector() { - initialise(); } protected: diff --git a/test/test_indirect_vector.cpp b/test/test_indirect_vector.cpp index 1cc75ae2..e604aeff 100644 --- a/test/test_indirect_vector.cpp +++ b/test/test_indirect_vector.cpp @@ -409,17 +409,21 @@ namespace const DataDC constData(10); CHECK_EQUAL(&data[0], &(*data.begin())); + CHECK_EQUAL(&data[0], &(*data.cbegin())); CHECK_EQUAL(&constData[0], &(*constData.begin())); + CHECK_EQUAL(&constData[0], &(*constData.cbegin())); } //************************************************************************* TEST_FIXTURE(SetupFixture, test_end) { - DataDC data(10); - const DataDC constData(10); + DataDC data(10U); + const DataDC constData(10U); - CHECK_EQUAL(&data[10], &(*data.end())); - CHECK_EQUAL(&constData[10], &(constData.end())); + CHECK(std::distance(data.begin(), data.end()) == 10U); + CHECK(std::distance(data.cbegin(), data.cend()) == 10U); + CHECK(std::distance(constData.begin(), constData.end()) == 10U); + CHECK(std::distance(constData.cbegin(), constData.cend()) == 10U); } //************************************************************************* diff --git a/test/test_indirect_vector_external_buffer.cpp b/test/test_indirect_vector_external_buffer.cpp index 9542acbe..57e4fd66 100644 --- a/test/test_indirect_vector_external_buffer.cpp +++ b/test/test_indirect_vector_external_buffer.cpp @@ -485,7 +485,9 @@ namespace const DataDC constData(10, lookup2, pool2); CHECK_EQUAL(&data[0], &(*data.begin())); + CHECK_EQUAL(&data[0], &(*data.cbegin())); CHECK_EQUAL(&constData[0], &(*constData.begin())); + CHECK_EQUAL(&constData[0], &(*constData.cbegin())); } //************************************************************************* @@ -500,8 +502,10 @@ namespace DataDC data(10, lookup1, pool1); const DataDC constData(10, lookup2, pool2); - CHECK_EQUAL(&data[10], &(*data.end())); - CHECK_EQUAL(&constData[10], &(constData.end())); + CHECK(std::distance(data.begin(), data.end()) == 10U); + CHECK(std::distance(data.cbegin(), data.cend()) == 10U); + CHECK(std::distance(constData.begin(), constData.end()) == 10U); + CHECK(std::distance(constData.cbegin(), constData.cend()) == 10U); } //*************************************************************************