If you erase while iterating, remember to update the iterator. Bug found by Carlo...
authorJim Ingham <jingham@apple.com>
Fri, 27 Sep 2013 20:58:17 +0000 (20:58 +0000)
committerJim Ingham <jingham@apple.com>
Fri, 27 Sep 2013 20:58:17 +0000 (20:58 +0000)
llvm-svn: 191555

lldb/source/Symbol/Symtab.cpp

index 27af698..d3ea9d6 100644 (file)
@@ -682,7 +682,7 @@ Symtab::AppendSymbolIndexesWithNameAndType (const ConstString& symbol_name, Symb
             if (symbol_type == eSymbolTypeAny || m_symbols[*pos].GetType() == symbol_type)
                 ++pos;
             else
-                indexes.erase(pos);
+                pos = indexes.erase(pos);
         }
     }
     return indexes.size();
@@ -701,7 +701,7 @@ Symtab::AppendSymbolIndexesWithNameAndType (const ConstString& symbol_name, Symb
             if (symbol_type == eSymbolTypeAny || m_symbols[*pos].GetType() == symbol_type)
                 ++pos;
             else
-                indexes.erase(pos);
+                pos = indexes.erase(pos);
         }
     }
     return indexes.size();