jfrijters
888c60f671
- Changed [Field|Parameter]Info.__FieldMarshal property to __TryGetFieldMarshal method.
...
- Changed FieldMarshal class into a value type with public fields.
2012-07-13 06:33:30 +00:00
jfrijters
2983cef814
Removed unnecessary cast.
2012-07-12 15:39:45 +00:00
jfrijters
8ae11694b7
Removed incorrect optimization. If a FieldLayout record exists, we should always return the pseudo custom attribute FieldOffset, regardless of the declaring type's layout.
2012-07-12 15:22:47 +00:00
jfrijters
2f91e4253b
- Added new public APIs FieldInfo.__FieldMarshal and ParameterInfo.__FieldMarshal.
...
- Moved ParameterInfo pseudo custom attribute handling to CustomAttributeData.
- Ignore HasFieldMarshal attribute and always return the pseudo custom attribute if a FieldMarshal record exists. This is similar to .NET reflection.
2012-07-12 15:10:58 +00:00
jfrijters
d16815e89b
Fixed formatting.
2012-07-12 14:16:43 +00:00
jfrijters
15a470ace9
Split FieldMarshal reading and pseudo CustomAttribute creation into two separate steps.
2012-07-12 14:14:47 +00:00
jfrijters
40055c6b2c
Added public API FieldInfo.__FieldOffset to get the offset of the field (in an explicit layout type) without having to parse the pseudo custom attribute.
2012-07-12 13:30:05 +00:00
jfrijters
d9df2658bf
Support mscorlib that forwards System.Enum and System.ValueType to another assembly (as .NETCore reference mscorlib does).
2012-07-12 13:29:08 +00:00
jfrijters
d2df488ac0
Make sure that primitive types (i.e. types that have a special signature encoding) are always resolved to a Type instance. This is needed for special mscorlib versions that don't have all the primitive types (e.g. .NETCore v4.5 aka Metro profile doesn't have System.TypedReference).
2012-07-12 12:24:34 +00:00
jfrijters
7a62076c03
Added co-/contra-variance support to Type.IsAssignableFrom().
2012-07-12 10:26:20 +00:00
jfrijters
c23369cee3
Added new .NET 4.5 API Type.IsConstructedGenericType.
2012-07-12 09:13:42 +00:00
jfrijters
ad94aed064
Updated Assembly.CreateQualifiedName() to be compatible with current .NET versions.
2012-07-11 09:20:13 +00:00
jfrijters
ca21edeb75
Fixed some minor class modifiers issues:
...
- stub generator now reproduces exact class modifier bits
- unused bits are now properly masked and returned
- non-abstract interfaces now properly return ACC_ABSTRACT
2012-07-09 06:07:39 +00:00
jfrijters
748cb77b12
Improved (disabled) optimizations.
...
- IsSideEffectFreePush() now knows the current type so it knows that static field loads from the current type are side effect free.
- Added Ldarg_S, Ldarg_<n> to IsSideEffectFreePush().
- Improved temporary local removal.
- Improved pop annihilation.
2012-07-08 07:57:16 +00:00
jfrijters
16c5ba12e2
Allow intrinsic methods to bypass the setting of nonleaf (which makes a method non-inlinable) for the intrinsic method call.
2012-07-08 07:53:27 +00:00
jfrijters
8a41d8fb60
- Updated for IKVM.NET 7.2 and JDK 1.7.0_04.
...
- Removed list of packages that were previously skipped.
- Use ikvmstub -japi option.
2012-07-07 08:34:40 +00:00
jfrijters
232094eb92
Deprecated the ikvmstub -serialver option and added a -japi option instead that also adds non-public interfaces and members. Also added a hack to fix the fact that String instance methods were all marked as deprecated.
2012-07-07 08:33:01 +00:00
jfrijters
22aca9f850
Fixed regression. Type.GetConstructor() should also return the class constructor. This also fixes Type.TypeInitializer.
2012-07-07 08:20:59 +00:00
jfrijters
721e78a0a7
Added missing DefineResource() APIs to ModuleBuilder and AssemblyBuilder.
2012-07-07 08:07:58 +00:00
jfrijters
eeba629e3f
Add ZipFile constructor that was added in Java 7.
2012-07-07 07:48:24 +00:00
jfrijters
000d896e93
Remove org.omg.PortableInterceptor.UNKNOWN class, that is not part of [Open]JDK rt.jar.
2012-07-07 07:18:51 +00:00
jfrijters
9a3b162e6f
Mark String.compareTo(Object0 as bridge method.
2012-07-07 07:15:30 +00:00
jfrijters
f0e3fa3881
Added intrinsics for (some usages of) Unsafe methods: putObject, putOrderedObject, putObjectVolatile, getObjectVolatile, getObject, compareAndSwapObject.
2012-07-05 09:57:09 +00:00
jfrijters
3b05b0cbc6
Added another optimization to convert synchronized blocks into try {} finally {} (instead of try {} fault {}).
2012-07-04 09:36:06 +00:00
jfrijters
cbad54881f
Updated base addressses due to file size changes.
2012-07-03 14:47:36 +00:00
jfrijters
b015884acb
- Made CodeEmitter more "type safe" by adding specific EmitXxx methods instead of following the more general ILGenerator pattern.
...
- Added some new optimizations to CodeEmitter (disabled unless experimental optimizations are enabled).
- Added some invariant checks to CodeEmitter to help debug optimizations (and document the invariants).
2012-07-03 14:45:51 +00:00
jfrijters
3d0c51b2f5
Merge exception blocks that are split around return statements by javac.
2012-07-03 14:43:30 +00:00
jfrijters
b9c35eef26
Added a simple optimization (disabled unless the IKVM_EXPERIMENTAL_OPTIMIZATIONS environment variable is set) to replace unconditional branches to ret or endfinally with the target instruction.
2012-06-29 15:08:56 +00:00
jfrijters
38d70162b4
Prevent the tail call elimination opcode sequence (ldnull/pop) from being optimized out.
2012-06-29 13:54:48 +00:00
jfrijters
9b98769acd
Changed NoClassDefFoundError resulting from type initialization failure to be consistent with OpenJDK behavior.
2012-06-29 12:03:47 +00:00
jfrijters
fb9c99e6ee
Bug fix. Local variable analysis and jsr inlining also need to take the final instruction of an exception block into account.
2012-06-29 07:59:46 +00:00
jfrijters
12372a8f9e
Bug fix. If an exception block ends with an astore, we need to propagate the local variable type after the astore to the exception handler.
2012-06-28 13:55:10 +00:00
jfrijters
1adc2a4afd
Enable to generation of WindowsRuntime assemblies.
2012-06-26 15:53:33 +00:00
jfrijters
ad11da3bca
Added support for ContentType=WindowsRuntime in AssemblyName.
2012-06-26 15:51:53 +00:00
jfrijters
f328966863
Explicitly disallow modifying the method signature after it has been used. We previously didn't support it properly (because method signatures are written to metadata eagerly), now we explicitly disallow it to avoid surprises.
2012-06-26 13:28:56 +00:00
jfrijters
b0c5d7ec03
- Construct lookup key only once in ImportMethodOrField.
...
- Added FXBUG comments to ArrayMethod.
2012-06-26 13:24:48 +00:00
jfrijters
ce4c832bc8
Removed unnecessary (and memory leaking) member ref caching level.
2012-06-26 13:12:55 +00:00
jfrijters
56bb6d1b83
Made MethodSpec handling more consistent with MemberRef handling. This avoids the need for the caching the MethodInfo to token mappings (which leaks memory, because generic method instances are not canonicalized).
2012-06-26 13:07:02 +00:00
jfrijters
d454dad756
Bug fix. ModuleBuilder.ResolveMethod() should return ConstructorInfo for constructors.
2012-06-26 12:59:12 +00:00
jfrijters
c1e9f015f8
Forward GetConstructorToken() to GetMethodToken() instead of duplicating the code.
2012-06-26 12:55:35 +00:00
jfrijters
1ace5e2c68
Removed unnecessary code.
2012-06-26 12:52:32 +00:00
jfrijters
c2aac84177
Moved TypeBuilder.DefineTypeInitializer() workaround to ReflectUtil.
2012-06-25 14:32:07 +00:00
jfrijters
b65f17588d
Bug fix. If the MethodSignature was previously created and one of its components gets modified, the cached MethodSignature should be thorwn away.
2012-06-22 15:43:21 +00:00
jfrijters
80a2b11df6
Added .NET 4.5 AssemblyName.ContentType property. Defining WinRT assemblies is not yet implemented.
2012-06-21 09:34:54 +00:00
jfrijters
e97566642b
Improved the handling of final fields that need to be wrapped by a property.
2012-06-20 12:01:15 +00:00
jfrijters
7a5a7eacdc
Added ClassFile.Field.IsStaticFinalConstant property to avoid duplicating the check.
2012-06-20 09:49:51 +00:00
jfrijters
2965f3131f
Slightly more efficient encoding of EmitAssertType().
2012-06-20 09:49:02 +00:00
jfrijters
24910cc0d1
Use new ikvm.internal.Util.MONO field to check for Mono runtime, instead of our own private field.
2012-06-15 14:51:42 +00:00
jfrijters
01ae451f9f
Disable AppDomain.ProcessExit hook to run shutdown hooks when running on Mono to workaround https://bugzilla.xamarin.com/show_bug.cgi?id=5650
2012-06-15 14:50:24 +00:00
jfrijters
62b5ef0a1d
Interface fields can always be marked as initonly and don't need final access stubs.
2012-06-13 11:34:37 +00:00