diff --git a/lldb/include/lldb/Symbol/TypeList.h b/lldb/include/lldb/Symbol/TypeList.h index 03390858025b8..403469c989f58 100644 --- a/lldb/include/lldb/Symbol/TypeList.h +++ b/lldb/include/lldb/Symbol/TypeList.h @@ -49,10 +49,11 @@ class TypeList { void ForEach(std::function const &callback); - void RemoveMismatchedTypes(const char *qualified_typename, bool exact_match); + void RemoveMismatchedTypes(llvm::StringRef qualified_typename, + bool exact_match); - void RemoveMismatchedTypes(const std::string &type_scope, - const std::string &type_basename, + void RemoveMismatchedTypes(llvm::StringRef type_scope, + llvm::StringRef type_basename, lldb::TypeClass type_class, bool exact_match); void RemoveMismatchedTypes(lldb::TypeClass type_class); diff --git a/lldb/include/lldb/Symbol/TypeMap.h b/lldb/include/lldb/Symbol/TypeMap.h index ede54c1a09d44..064e2cc948b68 100644 --- a/lldb/include/lldb/Symbol/TypeMap.h +++ b/lldb/include/lldb/Symbol/TypeMap.h @@ -53,10 +53,11 @@ class TypeMap { bool Remove(const lldb::TypeSP &type_sp); - void RemoveMismatchedTypes(const char *qualified_typename, bool exact_match); + void RemoveMismatchedTypes(llvm::StringRef qualified_typename, + bool exact_match); - void RemoveMismatchedTypes(const std::string &type_scope, - const std::string &type_basename, + void RemoveMismatchedTypes(llvm::StringRef type_scope, + llvm::StringRef type_basename, lldb::TypeClass type_class, bool exact_match); void RemoveMismatchedTypes(lldb::TypeClass type_class); diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index 41c21e1dc326b..c05b40c4362e3 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -1000,8 +1000,7 @@ void Module::FindTypes( FindTypes_Impl(type_basename_const_str, CompilerDeclContext(), max_matches, searched_symbol_files, typesmap); if (typesmap.GetSize()) - typesmap.RemoveMismatchedTypes(std::string(type_scope), - std::string(type_basename), type_class, + typesmap.RemoveMismatchedTypes(type_scope, type_basename, type_class, exact_match); } else { // The type is not in a namespace/class scope, just search for it by @@ -1011,15 +1010,13 @@ void Module::FindTypes( // class prefix (like "struct", "class", "union", "typedef" etc). FindTypes_Impl(ConstString(type_basename), CompilerDeclContext(), UINT_MAX, searched_symbol_files, typesmap); - typesmap.RemoveMismatchedTypes(std::string(type_scope), - std::string(type_basename), type_class, + typesmap.RemoveMismatchedTypes(type_scope, type_basename, type_class, exact_match); } else { FindTypes_Impl(name, CompilerDeclContext(), UINT_MAX, searched_symbol_files, typesmap); if (exact_match) { - std::string name_str(name.AsCString("")); - typesmap.RemoveMismatchedTypes(std::string(type_scope), name_str, + typesmap.RemoveMismatchedTypes(type_scope, name.AsCString(""), type_class, exact_match); } } diff --git a/lldb/source/Symbol/TypeList.cpp b/lldb/source/Symbol/TypeList.cpp index ace715d933ead..494e59e3a0fc2 100644 --- a/lldb/source/Symbol/TypeList.cpp +++ b/lldb/source/Symbol/TypeList.cpp @@ -97,7 +97,7 @@ void TypeList::Dump(Stream *s, bool show_context) { } } -void TypeList::RemoveMismatchedTypes(const char *qualified_typename, +void TypeList::RemoveMismatchedTypes(llvm::StringRef qualified_typename, bool exact_match) { llvm::StringRef type_scope; llvm::StringRef type_basename; @@ -107,13 +107,12 @@ void TypeList::RemoveMismatchedTypes(const char *qualified_typename, type_basename = qualified_typename; type_scope = ""; } - return RemoveMismatchedTypes(std::string(type_scope), - std::string(type_basename), type_class, + return RemoveMismatchedTypes(type_scope, type_basename, type_class, exact_match); } -void TypeList::RemoveMismatchedTypes(const std::string &type_scope, - const std::string &type_basename, +void TypeList::RemoveMismatchedTypes(llvm::StringRef type_scope, + llvm::StringRef type_basename, TypeClass type_class, bool exact_match) { // Our "collection" type currently is a std::map which doesn't have any good // way to iterate and remove items from the map so we currently just make a diff --git a/lldb/source/Symbol/TypeMap.cpp b/lldb/source/Symbol/TypeMap.cpp index 2cda9b6c27d13..7217a29fc002f 100644 --- a/lldb/source/Symbol/TypeMap.cpp +++ b/lldb/source/Symbol/TypeMap.cpp @@ -127,7 +127,7 @@ void TypeMap::Dump(Stream *s, bool show_context, lldb::DescriptionLevel level) { } } -void TypeMap::RemoveMismatchedTypes(const char *qualified_typename, +void TypeMap::RemoveMismatchedTypes(llvm::StringRef qualified_typename, bool exact_match) { llvm::StringRef type_scope; llvm::StringRef type_basename; @@ -137,13 +137,12 @@ void TypeMap::RemoveMismatchedTypes(const char *qualified_typename, type_basename = qualified_typename; type_scope = ""; } - return RemoveMismatchedTypes(std::string(type_scope), - std::string(type_basename), type_class, + return RemoveMismatchedTypes(type_scope, type_basename, type_class, exact_match); } -void TypeMap::RemoveMismatchedTypes(const std::string &type_scope, - const std::string &type_basename, +void TypeMap::RemoveMismatchedTypes(llvm::StringRef type_scope, + llvm::StringRef type_basename, TypeClass type_class, bool exact_match) { // Our "collection" type currently is a std::map which doesn't have any good // way to iterate and remove items from the map so we currently just make a