@@ -722,15 +722,11 @@ Symtab::AppendSymbolIndexesWithNameAndType(ConstString symbol_name,
722722 std::vector<uint32_t > &indexes) {
723723 std::lock_guard<std::recursive_mutex> guard (m_mutex);
724724
725- if (AppendSymbolIndexesWithName (symbol_name, indexes) > 0 ) {
726- std::vector<uint32_t >::iterator pos = indexes.begin ();
727- while (pos != indexes.end ()) {
728- if (symbol_type == eSymbolTypeAny ||
729- m_symbols[*pos].GetType () == symbol_type)
730- ++pos;
731- else
732- pos = indexes.erase (pos);
733- }
725+ if (AppendSymbolIndexesWithName (symbol_name, indexes) > 0 &&
726+ symbol_type != eSymbolTypeAny) {
727+ llvm::erase_if (indexes, [this , symbol_type](uint32_t index) {
728+ return m_symbols[index].GetType () != symbol_type;
729+ });
734730 }
735731 return indexes.size ();
736732}
@@ -742,15 +738,11 @@ uint32_t Symtab::AppendSymbolIndexesWithNameAndType(
742738 std::lock_guard<std::recursive_mutex> guard (m_mutex);
743739
744740 if (AppendSymbolIndexesWithName (symbol_name, symbol_debug_type,
745- symbol_visibility, indexes) > 0 ) {
746- std::vector<uint32_t >::iterator pos = indexes.begin ();
747- while (pos != indexes.end ()) {
748- if (symbol_type == eSymbolTypeAny ||
749- m_symbols[*pos].GetType () == symbol_type)
750- ++pos;
751- else
752- pos = indexes.erase (pos);
753- }
741+ symbol_visibility, indexes) > 0 &&
742+ symbol_type != eSymbolTypeAny) {
743+ llvm::erase_if (indexes, [this , symbol_type](uint32_t index) {
744+ return m_symbols[index].GetType () != symbol_type;
745+ });
754746 }
755747 return indexes.size ();
756748}
0 commit comments