зеркало из https://github.com/mono/ikvm-fork.git
Don't use "slow path" for field reflection on remapped types (as getting a Throwable field from cli.System.Exception will cause an exception, but the slow path will generate a different exception).
This commit is contained in:
Родитель
2544c3c783
Коммит
c6006accbe
|
@ -7031,16 +7031,16 @@ namespace IKVM.NativeCode.sun.reflect
|
|||
}
|
||||
}
|
||||
|
||||
protected bool IsSpecialType(TypeWrapper tw)
|
||||
private bool IsSpecialType(TypeWrapper tw)
|
||||
{
|
||||
return tw.IsNonPrimitiveValueType
|
||||
|| tw.IsGhost
|
||||
|| tw.IsFakeNestedType;
|
||||
}
|
||||
|
||||
protected bool IsSlowPathCompatible(FieldWrapper fw)
|
||||
private bool IsSlowPathCompatible(FieldWrapper fw)
|
||||
{
|
||||
if (IsSpecialType(fw.DeclaringType) || IsSpecialType(fw.FieldTypeWrapper))
|
||||
if (IsSpecialType(fw.DeclaringType) || IsSpecialType(fw.FieldTypeWrapper) || fw.DeclaringType.IsRemapped)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче