From 50b3d507bdbc69ea12c19a3b7ba89970db15afae Mon Sep 17 00:00:00 2001 From: Jim Ingham Date: Thu, 12 Jan 2012 22:35:29 +0000 Subject: Let the Module FindType do the stripping of namespace components, that's not expensive and doing it both at the ModuleList and Module levels means we look 4 times for a negative search. Also, don't do the search for the stripped name if that is the same as the original one. llvm-svn: 148054 --- lldb/source/Core/Module.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'lldb/source/Core/Module.cpp') diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp index 8dc755b8d146..ea16376aa340 100644 --- a/lldb/source/Core/Module.cpp +++ b/lldb/source/Core/Module.cpp @@ -531,8 +531,13 @@ Module::FindTypes (const SymbolContext& sc, const ConstString &name, const Clan if (retval == 0) { - const char *stripped = StripTypeName(name.GetCString()); - return FindTypes_Impl(sc, ConstString(stripped), namespace_decl, append, max_matches, types); + const char *orig_name = name.GetCString(); + const char *stripped = StripTypeName(orig_name); + // Only do this lookup if StripTypeName has stripped the name: + if (stripped != orig_name) + return FindTypes_Impl(sc, ConstString(stripped), namespace_decl, append, max_matches, types); + else + return 0; } else return retval; -- cgit v1.2.3