More fixes and stabilization work. More to come...
Changes:
- Merged with GNU Classpath cvs.
- Fixed a relatively obscure bytecode compiler bug (that caused a "critical failure" because of an undefined label).
- Fixed error handling for sockets to deal with closed sockets.
- Implemented support for parsing relative ikvmres URLs and improved error handling.
- Fixed ikvmres protocol handler to set port to -1 instead of 0 to enable better URL/URI roundtripping.
- Fixed defineClass to throw NoClassDefFoundError instead of ClassNotFoundException (in some cases).
- Fixed reflection to use a classes real accessibility instead of the access flags from the inner classes attribute.
- Fixed ikvmc to always return errorcode when compilation fails.
- Improved exception printing in ikvmstub.
- Many fixes to class file format checking.
- Fixed dynamic bytecode helper methods to throw NoClassDefFoundError instead of ClassNotFoundException.
- Improved detection of class circularity.
- Added workaround for .NET bug for classes that end with a period.
- Implemented support for enums that use unsigned integral types as underlying type.
- Fixed several constant field related bugs.
- Fixed several .NET literal field related bugs.
- Added workaround for .NET 1.1 verifier bug that made accessing the Value field of an enum unverifiable (for integral types smaller than Int32).
- Fixed obscure bytecode compiler bug dealing with assigning uninitialized object references to local variables.
- Implemented verifier checks to enforce calling the base class constructor before returning from a constructor.
- Fixed obscure verifier bug that incorrectly disallowed having the unitialized this in a local or on the stack when doing a backward branch.
- Fixed several verifier bugs when dealing with incorrect bytecode (would previously throw an IndexOutOfBoundsException instead of a VerifyError).
- Added validation of the exception handling tables to the verifier and class file parser.
- Implemented invokeinterface verification for bogus bytes following the instruction.
- Moved java.lang.Class object <-> TypeWrapper mapping from hashtable to field in TypeWrapper.
- Fixed class loading deadlocking bug.
- Fixed JNI methods to handle RetargetedJavaExceptions.
- Fixed Class.getProtectionDomain() for array types (not in Classpath cvs yet).
- Fixed Class.getModifiers() for inner class array types.
New snapshots: just the binaries and source plus binaries.