diff --git a/include/etl/algorithm.h b/include/etl/algorithm.h index 4d6ac1c4..08ebfeda 100644 --- a/include/etl/algorithm.h +++ b/include/etl/algorithm.h @@ -2379,13 +2379,11 @@ namespace etl typedef typename etl::largest_type::type min_size_type; #endif - s_size_type s_size = etl::distance(i_begin, i_end); - ETL_ASSERT(s_size >= 0, ETL_ERROR(algorithm_error)); - d_size_type d_size = etl::distance(o_begin, o_end); - ETL_ASSERT(d_size >= 0, ETL_ERROR(algorithm_error)); - min_size_type size = etl::min(s_size, d_size); + s_size_type s_size = etl::distance(i_begin, i_end); + d_size_type d_size = etl::distance(o_begin, o_end); + min_size_type min_size = etl::min(s_size, d_size); - return etl::copy(i_begin, i_begin + size, o_begin); + return etl::copy(i_begin, i_begin + min_size, o_begin); } //*************************************************************************** @@ -2552,13 +2550,11 @@ namespace etl using d_size_type = typename iterator_traits::difference_type; using min_size_type = typename etl::common_type::type; - s_size_type s_size = etl::distance(i_begin, i_end); - ETL_ASSERT(s_size >= 0, ETL_ERROR(algorithm_error)); - d_size_type d_size = etl::distance(o_begin, o_end); - ETL_ASSERT(d_size >= 0, ETL_ERROR(algorithm_error)); - min_size_type size = etl::min(s_size, d_size); + s_size_type s_size = etl::distance(i_begin, i_end); + d_size_type d_size = etl::distance(o_begin, o_end); + min_size_type min_size = etl::min(s_size, d_size); - return etl::move(i_begin, i_begin + size, o_begin); + return etl::move(i_begin, i_begin + min_size, o_begin); } //*************************************************************************** diff --git a/test/test_algorithm.cpp b/test/test_algorithm.cpp index eb8f7e3b..b7573bb0 100644 --- a/test/test_algorithm.cpp +++ b/test/test_algorithm.cpp @@ -1420,17 +1420,6 @@ namespace CHECK(is_same); } - //************************************************************************* - TEST(copy_s_random_iterator) - { - int data1[] = { 1, 2, 3, 4, 5 }; - int out1[10]; - CHECK_THROW(etl::copy_s(std::end(data1), std::begin(data1), std::begin(out1), std::end(out1)), etl::algorithm_error); - CHECK_THROW(etl::copy_s(std::begin(data1), std::end(data1), std::end(out1), std::begin(out1)), etl::algorithm_error); - CHECK_THROW(etl::move_s(std::end(data1), std::begin(data1), std::begin(out1), std::end(out1)), etl::algorithm_error); - CHECK_THROW(etl::move_s(std::begin(data1), std::end(data1), std::end(out1), std::begin(out1)), etl::algorithm_error); - } - //************************************************************************* TEST(copy_4_parameter_non_random_iterator) {