зеркало из 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
|
return tw.IsNonPrimitiveValueType
|
||||||
|| tw.IsGhost
|
|| tw.IsGhost
|
||||||
|| tw.IsFakeNestedType;
|
|| 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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
Загрузка…
Ссылка в новой задаче