[Ikvm-developers] Fixes
Brought to you by:
jfrijters
From: Jeroen F. <je...@su...> - 2003-06-10 13:31:23
|
Hi, I tried to get JBoss running (didn't get it done) and that resulted in a few bug fixes: * IK.VM.NET/ClassFile.cs (LoadAllReferencedTypes): added field and method signatures to types that are loaded (LoadClassHelper): improved logging for class load failures * IK.VM.NET/ClassLoaderWrapper.cs (MangleTypeName): added to support loading multiple classes with the same name (in different class loaders) (DefineClass): added check for ClassCircularityError (SigDecoder): removed (RetTypeFromSig): removed (ArgTypeListFromSig): changed to use ArgTypeWrapperListFromSig instead of SigDecoder (GetWrapperFromType): fixed array handling * IK.VM.NET/CodeEmitter.cs (NoClassDefHackEmitter): added as a workaround for dealing with unloadable classes (CastEmitter): changed to remove usage of ClassLoaderWrapper.RetTypeFromSig * IK.VM.NET/JavaException.cs (LinkageError): added (ClassCircularityError): added * IK.VM.NET/MemberWrapper.cs (Create): added check for unloadable return types (HasUnloadableArgsOrRet): added (FieldWrapper): added support for unloadable field type and added Create method that takes a ClassFile.Field * IK.VM.NET/TypeWrapper.cs (ArgTypes): changed to remove usage of ClassLoaderWrapper.ArgTypeListFromSig (RetType): changed to remove usage of ClassLoaderWrapper.RetTypeFromSig (ImplementInterfaceMethodStubImpl): added hack to support "overriding" methods with unloadable types, added explicit method override for miranda methods that have a different name as the interface method that they're supposed to implement (DynamicTypeWrapper): set BaseTypeWrapper to null for interfaces and implemented type name mangling * IK.VM.NET/classpath.cs (getClassLoader0): added wrapper parameter to prevent Class.getClassLoader from triggering a finish * IK.VM.NET/compiler.cs (Compile): added hack to emit code to throw a NoClassDefFoundError if one of the arguments or the return type is unloadable * IK.VM.NET/map.xml added StringBuffer.capacity() and the StackTraceElement methods * classpath/java/lang/VMClass.java (isPrimitive): changed to not use getType so that we don't trigger a finish (getClassLoader): changed to not use getType so that we don't trigger a finish * netexp/NetExp.cs (ProcessType): changed to mark interfaces abstract Also, thanks to Alan Macek for fixing a bug with ikvmc that caused inner interfaces compilation to fail. This was caused by a .NET bug in the AppDomain.TypeResolve event which doesn't include the full type name in the ResolveEventArgs. It didn't affect Mono. Regards, Jeroen |