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
This commit is contained in:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user