Skip to content

Commit 677e8ce

Browse files
MelchiorSchuhBotellaA
authored andcommitted
fix(delete_vector_elements): Start deletion only at first point to delete, to avoid undefined behavior when moving an element to its own place.
1 parent 98755a2 commit 677e8ce

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

include/geode/basic/algorithm.h

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,12 +50,13 @@ namespace geode
5050
OPENGEODE_ASSERT( to_delete.size() == values.size(),
5151
"[delete_vector_elements] Number of elements in the two vectors "
5252
"should match" );
53-
index_t nb_removed_elements{ 0 };
54-
if( absl::c_find( to_delete, true ) == to_delete.end() )
53+
const auto it = absl::c_find( to_delete, true );
54+
if( it == to_delete.end() )
5555
{
5656
return 0;
5757
}
58-
for( const auto i : Indices{ to_delete } )
58+
index_t nb_removed_elements{ 0 };
59+
for( const auto i : Range{ it - to_delete.begin(), to_delete.size() } )
5960
{
6061
if( to_delete[i] )
6162
{

0 commit comments

Comments
 (0)