Граф коммитов

3445 Коммитов

Автор SHA1 Сообщение Дата
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