summaryrefslogtreecommitdiffstats
path: root/lldb/source/Core/Module.cpp
diff options
context:
space:
mode:
authorJim Ingham <jingham@apple.com>2012-01-12 22:35:29 +0000
committerJim Ingham <jingham@apple.com>2012-01-12 22:35:29 +0000
commit50b3d507bdbc69ea12c19a3b7ba89970db15afae (patch)
tree4e6ce4149ee522b3c0cbd7fb93539af978a0c1e6 /lldb/source/Core/Module.cpp
parent0037e088114ce65199f3d705a8676860f2fbc9e6 (diff)
downloadbcm5719-llvm-50b3d507bdbc69ea12c19a3b7ba89970db15afae.tar.gz
bcm5719-llvm-50b3d507bdbc69ea12c19a3b7ba89970db15afae.zip
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
Diffstat (limited to 'lldb/source/Core/Module.cpp')
-rw-r--r--lldb/source/Core/Module.cpp9
1 files changed, 7 insertions, 2 deletions
diff --git a/lldb/source/Core/Module.cpp b/lldb/source/Core/Module.cpp
index 8dc755b8d14..ea16376aa34 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;
OpenPOWER on IntegriCloud