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