Skip to content
Snippets Groups Projects
Commit 4363d8d2 authored by Joan Vallvé Navarro's avatar Joan Vallvé Navarro
Browse files

Merge branch 'fix-remove-in-for' into 'devel'

Bug fixed: remove elements in a for loop

See merge request !294
parents bad49ed2 0ef315c9
No related branches found
No related tags found
1 merge request!294Bug fixed: remove elements in a for loop
Pipeline #3816 passed
...@@ -97,19 +97,22 @@ unsigned int ProcessorTrackerFeature::processKnown() ...@@ -97,19 +97,22 @@ unsigned int ProcessorTrackerFeature::processKnown()
// Check/correct incoming-origin correspondences // Check/correct incoming-origin correspondences
if (origin_ptr_ != nullptr) if (origin_ptr_ != nullptr)
{ {
for (auto feature_in_incoming : known_features_incoming_) auto ftr_inc_it = known_features_incoming_.begin();
while (ftr_inc_it != known_features_incoming_.end())
{ {
SizeStd track_id = feature_in_incoming->trackId(); SizeStd track_id = (*ftr_inc_it)->trackId();
FeatureBasePtr feature_in_last = track_matrix_.feature(track_id, last_ptr_); FeatureBasePtr feature_in_last = track_matrix_.feature(track_id, last_ptr_);
FeatureBasePtr feature_in_origin = track_matrix_.feature(track_id, origin_ptr_); FeatureBasePtr feature_in_origin = track_matrix_.feature(track_id, origin_ptr_);
if (!correctFeatureDrift(feature_in_origin, feature_in_last, feature_in_incoming)) if (!correctFeatureDrift(feature_in_origin, feature_in_last, (*ftr_inc_it)))
{ {
// Remove this feature from many places: // Remove this feature from many places:
matches_last_from_incoming_ .erase (feature_in_incoming); // remove match matches_last_from_incoming_ .erase (*ftr_inc_it); // remove match
track_matrix_ .remove(feature_in_incoming); // remove from track matrix track_matrix_ .remove(*ftr_inc_it); // remove from track matrix
known_features_incoming_ .remove(feature_in_incoming); // remove from known features list ftr_inc_it = known_features_incoming_.erase(ftr_inc_it); // remove from known features list
feature_in_incoming ->remove(); // remove from wolf tree (*ftr_inc_it)-> remove(); // remove from wolf tree
} }
else
ftr_inc_it++;
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment