From 5a0195e1dd55d9b23851c8e2082feecb6e171b0f Mon Sep 17 00:00:00 2001 From: eidheim Date: Tue, 29 May 2018 09:39:12 +0200 Subject: [PATCH] Fixed errorenous iterator usage in clangmm::Tokens::Tokens --- src/tokens.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/tokens.cc b/src/tokens.cc index b004ad0..2166a68 100644 --- a/src/tokens.cc +++ b/src/tokens.cc @@ -63,14 +63,16 @@ clangmm::Tokens::Tokens(CXTranslationUnit &cx_tu, const SourceRange &range, bool if(clang_getCursorKind(cx_cursor)==CXCursor_FieldDecl) { Cursor cursor(cx_cursor); auto clang_offset=cursor.get_source_location().get_offset(); - for(auto it=data->invalid_tokens.begin();it!=data->invalid_tokens.end();++it) { + for(auto it=data->invalid_tokens.begin();it!=data->invalid_tokens.end();) { if(it->second==clang_offset) { (*data->tokens)[it->first].cx_cursor=cursor.cx_cursor; - data->invalid_tokens.erase(it); + it=data->invalid_tokens.erase(it); if(data->invalid_tokens.empty()) return CXChildVisit_Break; break; } + else + ++it; } } return CXChildVisit_Recurse;