From 37f6e2b39e828fa70629aaf9caf0c372b5a3ab50 Mon Sep 17 00:00:00 2001 From: Robert Osfield Date: Fri, 10 Jun 2016 12:44:26 +0100 Subject: [PATCH] Fixed invalidated iterator bug pick up by Coverity. --- src/osgSim/ElevationSlice.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/osgSim/ElevationSlice.cpp b/src/osgSim/ElevationSlice.cpp index 59b780501..4057bf8c2 100644 --- a/src/osgSim/ElevationSlice.cpp +++ b/src/osgSim/ElevationSlice.cpp @@ -460,7 +460,7 @@ struct LineConstructor for(SegmentSet::iterator itr = _segments.begin(); itr != _segments.end(); - ++itr) + ) // itr increment is done manually at end of loop { SegmentSet::iterator nextItr = itr; ++nextItr; @@ -1060,6 +1060,9 @@ struct LineConstructor classification = ((itr != _segments.end()) && (nextItr != _segments.end())) ? itr->compare(*nextItr) : Segment::UNCLASSIFIED; } + + // increment iterator it it's not already at end of container. + if (itr!=_segments.end()) ++itr; } }