[Lldb-commits] [lldb] 65cac0e - Use StringRef to avoid unnecessary copies into std::strings
David Blaikie via lldb-commits
lldb-commits at lists.llvm.org
Thu Jul 7 12:50:25 PDT 2022
Author: David Blaikie
Date: 2022-07-07T19:50:12Z
New Revision: 65cac0ed9266e3551663358de677161ce25a25bf
URL: https://github.com/llvm/llvm-project/commit/65cac0ed9266e3551663358de677161ce25a25bf
DIFF: https://github.com/llvm/llvm-project/commit/65cac0ed9266e3551663358de677161ce25a25bf.diff
LOG: Use StringRef to avoid unnecessary copies into std::strings
Added:
Modified:
lldb/include/lldb/Symbol/TypeList.h
lldb/include/lldb/Symbol/TypeMap.h
lldb/source/Core/Module.cpp
lldb/source/Symbol/TypeList.cpp
lldb/source/Symbol/TypeMap.cpp
Removed:
################################################################################
diff --git a/lldb/include/lldb/Symbol/TypeList.h b/lldb/include/lldb/Symbol/TypeList.h
index 03390858025b..403469c989f5 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<bool(lldb::TypeSP &type_sp)> 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 ede54c1a09d4..064e2cc948b6 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 41c21e1dc326..c05b40c4362e 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 ace715d933ea..494e59e3a0fc 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 2cda9b6c27d1..7217a29fc002 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
More information about the lldb-commits
mailing list