Removed .NET 1.1 restriction workaround.

This commit is contained in:
jfrijters 2010-05-19 15:20:36 +00:00
Родитель 999be08e21
Коммит 8c526e9001
1 изменённых файлов: 0 добавлений и 8 удалений

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

@ -694,19 +694,11 @@ namespace IKVM.Internal
#endif #endif
} }
// NOTE this method can actually return null if the resulting array type name would be too long
// for .NET to handle.
private TypeWrapper CreateArrayType(string name, TypeWrapper elementTypeWrapper, int dims) private TypeWrapper CreateArrayType(string name, TypeWrapper elementTypeWrapper, int dims)
{ {
Debug.Assert(new String('[', dims) + elementTypeWrapper.SigName == name); Debug.Assert(new String('[', dims) + elementTypeWrapper.SigName == name);
Debug.Assert(!elementTypeWrapper.IsUnloadable && !elementTypeWrapper.IsVerifierType && !elementTypeWrapper.IsArray); Debug.Assert(!elementTypeWrapper.IsUnloadable && !elementTypeWrapper.IsVerifierType && !elementTypeWrapper.IsArray);
Debug.Assert(dims >= 1); Debug.Assert(dims >= 1);
Type elementType = elementTypeWrapper.TypeAsArrayType;
// .NET 1.1 has a limit of 1024 characters for type names
if(elementType.FullName.Length >= 1024 - dims * 2)
{
return null;
}
return RegisterInitiatingLoader(new ArrayTypeWrapper(elementTypeWrapper, name)); return RegisterInitiatingLoader(new ArrayTypeWrapper(elementTypeWrapper, name));
} }