Browse Source

Fixed errorenous iterator usage in clangmm::Tokens::Tokens

merge-requests/37/head
eidheim 8 years ago
parent
commit
5a0195e1dd
  1. 6
      src/tokens.cc

6
src/tokens.cc

@ -63,14 +63,16 @@ clangmm::Tokens::Tokens(CXTranslationUnit &cx_tu, const SourceRange &range, bool
if(clang_getCursorKind(cx_cursor)==CXCursor_FieldDecl) { if(clang_getCursorKind(cx_cursor)==CXCursor_FieldDecl) {
Cursor cursor(cx_cursor); Cursor cursor(cx_cursor);
auto clang_offset=cursor.get_source_location().get_offset(); 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) { if(it->second==clang_offset) {
(*data->tokens)[it->first].cx_cursor=cursor.cx_cursor; (*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()) if(data->invalid_tokens.empty())
return CXChildVisit_Break; return CXChildVisit_Break;
break; break;
} }
else
++it;
} }
} }
return CXChildVisit_Recurse; return CXChildVisit_Recurse;

Loading…
Cancel
Save