From 035c543e9fc14f987566124790299323c5d8d456 Mon Sep 17 00:00:00 2001 From: Tim Wojtulewicz Date: Fri, 1 Jul 2022 14:35:54 -0700 Subject: [PATCH] Remove loops from Dict iterator invalidation unit test This fixes Coverity finding 1490366 --- src/Dict.cc | 42 ++++++++++++++++++------------------------ 1 file changed, 18 insertions(+), 24 deletions(-) diff --git a/src/Dict.cc b/src/Dict.cc index d1cfad31fb..98b8320869 100644 --- a/src/Dict.cc +++ b/src/Dict.cc @@ -350,33 +350,27 @@ TEST_CASE("dict iterator invalidation") detail::HashKey* it_key; bool iterators_invalidated = false; - for ( auto it = dict.begin(); it != dict.end(); ++it ) - { - iterators_invalidated = false; - dict.Remove(key3, &iterators_invalidated); - // Key doesn't exist, nothing to remove, iteration not invalidated. - CHECK(! iterators_invalidated); + auto it = dict.begin(); + iterators_invalidated = false; + dict.Remove(key3, &iterators_invalidated); + // Key doesn't exist, nothing to remove, iteration not invalidated. + CHECK(! iterators_invalidated); - iterators_invalidated = false; - dict.Insert(key, &val2, &iterators_invalidated); - // Key exists, value gets overwritten, iteration not invalidated. - CHECK(! iterators_invalidated); + iterators_invalidated = false; + dict.Insert(key, &val2, &iterators_invalidated); + // Key exists, value gets overwritten, iteration not invalidated. + CHECK(! iterators_invalidated); - iterators_invalidated = false; - dict.Remove(key2, &iterators_invalidated); - // Key exists, gets removed, iteration is invalidated. - CHECK(iterators_invalidated); - break; - } + iterators_invalidated = false; + dict.Remove(key2, &iterators_invalidated); + // Key exists, gets removed, iteration is invalidated. + CHECK(iterators_invalidated); - for ( auto it = dict.begin(); it != dict.end(); ++it ) - { - iterators_invalidated = false; - dict.Insert(key3, &val3, &iterators_invalidated); - // Key doesn't exist, gets inserted, iteration is invalidated. - CHECK(iterators_invalidated); - break; - } + it = dict.begin(); + iterators_invalidated = false; + dict.Insert(key3, &val3, &iterators_invalidated); + // Key doesn't exist, gets inserted, iteration is invalidated. + CHECK(iterators_invalidated); CHECK(dict.Length() == 2); CHECK(*static_cast(dict.Lookup(key)) == val2);