Limit resolve depth
This commit is contained in:
parent
ed71da19ec
commit
83f5f718d2
@ -291,7 +291,8 @@ namespace System.Diagnostics
|
|||||||
var candidateConstructors = dt.GetConstructors(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly).Where(m => m.Name == matchName);
|
var candidateConstructors = dt.GetConstructors(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Static | BindingFlags.Instance | BindingFlags.DeclaredOnly).Where(m => m.Name == matchName);
|
||||||
if (TryResolveSourceMethod(candidateConstructors, kind, matchHint, ref method, ref type, out ordinal)) return true;
|
if (TryResolveSourceMethod(candidateConstructors, kind, matchHint, ref method, ref type, out ordinal)) return true;
|
||||||
|
|
||||||
while (true)
|
const int MaxResolveDepth = 10;
|
||||||
|
for (var i = 0; i < MaxResolveDepth; i++)
|
||||||
{
|
{
|
||||||
dt = dt.DeclaringType;
|
dt = dt.DeclaringType;
|
||||||
if (dt == null)
|
if (dt == null)
|
||||||
@ -316,6 +317,8 @@ namespace System.Diagnostics
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool TryResolveSourceMethod(IEnumerable<MethodBase> candidateMethods, GeneratedNameKind kind, string matchHint, ref MethodBase method, ref Type type, out int? ordinal)
|
private static bool TryResolveSourceMethod(IEnumerable<MethodBase> candidateMethods, GeneratedNameKind kind, string matchHint, ref MethodBase method, ref Type type, out int? ordinal)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user