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:
jfrijters 2011-09-02 06:07:30 +00:00
Родитель 2544c3c783
Коммит c6006accbe
1 изменённых файлов: 3 добавлений и 3 удалений

Просмотреть файл

@ -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;
}