When calling MethodBuilder.DefineParameter() multiple times for the same parameter, we would (sometimes) not store the ParameterBuilder and this would cause the resulting PE file to be corrupt. Now we store the duplicate Param records like SRE does.
- Added UniverseOptions.MetadataOnly.
- Added comment describing UniverseOptions.
- Made user string heap loading lazy.
Fixed regression introduced in recent change that introduced UniverseOptions.MetadataOnly. A ModuleReader can be constructed with a null universe.
Revert previous fix because peverify 2.0 and 3.5 give an (incorrect) warning when TypeDefId isn't set for an exported type.
Bug fix. If SizeOfOptionalHeader is greater than the number of bytes we read from the optional header, we should skip the additional bytes. If it is less, the image is invalid. Thanks to Jb Evain.
Changed build infrastructure to support targetting .NET 4.0 on systems where 4.5 is installed.
Ported MSBuild task to .NET 2.0 and included the project in the VS solution.
- compile classes to obj\classes\[configuration]
- generate rt.jar (if necessary) in obj\stubs and let javac use that instead of having the runtime dynamically create the stubs
- set javac -g option when doing a debug build
Generate stubs for referenced assemblies and pass them to javac -classpath option.
Bug fix. Don't deadlock AppDomain.ProcessExit event handler when the event gets called from another thread than the one initiating exit.
Only register the AppDomain.ProcessExit event handler when necessary.
Added caching for Type.__ContainsMissingType property to simplify the prevention of infinite recursion while evaluating generic parameter constraints.
- Implemented __ContainsMissingType for function pointer types.
- Changed __ContainsMissingType to take custom modifiers into account.
Fixed TypeFlags encoding of ContainsMissingType to use only two bits.
Bug fix. Private methods declared in map.xml should not be made virtual.
- Support "attributes" attribute on method tag in map.xml for methods declared in remapped types.
- Recognize methods in remapped types with the "__<" name prefix as HideFromJava.
Removed meaningless "modifiers" attribute on methods where we're just replacing the method body.
Bug fix. Static compiler should not use proxy stubs to implement non-public interfaces in another assembly (because this situation can only arise when compiling the assemblies together and the InternalsVisibileToAttribute will be used and proxy stubs are not understood by CompiledTypeWrapper, so they can only be used in dynamic mode).
- Expose .NET resources in non-Java assemblies as Java resources.
- Add custom attribute to expose .NET resource under a different name.
Added UniverseOptions.ResolveMissingMembers and deprecated EnableMissingMemberResolution().