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

305 Коммитов

Автор SHA1 Сообщение Дата
jfrijters 43fd0daf07 Implemented support for .NET serialization of Java enums.
(The CreateEnumEnum move in FakeTypes.cs is because java.lang.Enum now has a dependency on custom attribute annotations.)
2009-07-29 09:36:56 +00:00
jfrijters 568cff8e34 - Make IsFastClassLiteralSafe return true for various fake annotation types.
- Pass Type to java.lang.Class for "forbidden" and reflection-only types. This is now needed for Class serialization.
2009-07-29 07:06:44 +00:00
jfrijters 9c28395a5a Fix NRE when getting annotations on delegate constructor for delegates defined in Java (because these constructors don't really exist). 2009-07-27 08:04:30 +00:00
jfrijters 88729b4059 Optimized primitive class literals. 2009-07-16 06:29:32 +00:00
jfrijters 28e5b235d7 Implemented optimization to remove .cctor when it is empty (and the class isn't serializable or has a serialVersionUID). 2009-07-16 06:26:47 +00:00
jfrijters 1e003bbb98 Made callerID initialization lazy. 2009-07-14 08:25:04 +00:00
jfrijters 64e5615aaa Moved responsibility for creating java.lang.Class instances for "fast literal" enable types into ClassLiteral<T>, this allows class literals to be really cheap, because non of the underlying reflection is needed, the class will cache the Type and lazily resolve it to its TypeWrapper. 2009-07-14 06:27:41 +00:00
jfrijters d76b454d72 Made some classes sealed. 2009-07-13 13:34:41 +00:00
jfrijters 04ca4a71f9 Moved class literal emit code to TypeWrapper and added checks to prevent types that are illegal in type instantations from being used with ClassLiteral<T>. 2009-07-13 08:34:37 +00:00
jfrijters 6dee819903 Removed ByteCodeHelperMethods.GetClassFromTypeHandle usage from static compiler. 2009-07-07 08:02:18 +00:00
jfrijters ba363faf74 Replaced last usage of ByteCodeHelperMethods.GetClassFromTypeHandle in runtime with LazyEmitLoadClass. 2009-07-07 07:44:30 +00:00
jfrijters 99c7df5de9 Added "RuntimeCompatibilityAttribute(WrapNonExceptionThrows = true)" to generated assemblies. 2009-06-18 06:14:55 +00:00
jfrijters b75fb48ee8 Implemented class gc (available only when compiling on .NET 4.0). 2009-06-02 07:38:21 +00:00
jfrijters 7b120d5942 Added JavaModuleAttribute to dynamic module to make detection of Java types more straightforward. 2009-05-29 07:47:20 +00:00
jfrijters 6a5ce00091 - When building for .NET 4.0, don't use DefineDynamicAssembly() overload that takes assembly permission sets, because .NET 4.0 ignores them anyway.
- Fixed BakedTypeCleanupHack to work for .NET 2.0 SP2.
- Changes to remove warnings when building on .NET 4.0
2009-05-26 05:00:38 +00:00
jfrijters d33c145753 Added support for declarative security pseudo custom attribute annotations. 2009-05-17 06:05:52 +00:00
jfrijters da7552b32c - Added hook to allow subclass of DynamicTypeWrapper to inject a different base class.
- Added support to CompiledTypeWrapper.GetBaseTypeWrapper() to skip base classes that aren't visible to Java.
2009-05-12 04:03:48 +00:00
jfrijters c1553b7f1a Refactored method call replacement to allow it to be used by others than xml mapping stuff. 2009-05-12 04:00:01 +00:00
jfrijters 95ddd4293c Fix for bug #2777171.
- Use custom enum value decoding because Enum.Parse() doesn't work for ReflectionOnly types.
- Handle enums that use unsigned integer underlying type properly.
2009-04-22 04:34:06 +00:00
jfrijters 4ec50d326a AttributeTargets.Interface wasn't mapped correctly to @Target(TYPE).
Fixes bug #2777128.
2009-04-21 07:26:29 +00:00
jfrijters 62e4bc8b12 Removed jsr/ret support. 2009-04-16 05:44:48 +00:00
jfrijters d20098ec2a Renamed CodeEmitter.Finish() to CheckLabels() and moved invocation to the right place. 2009-04-06 10:10:17 +00:00
jfrijters 629416833c Delegate fixes. 2009-03-07 08:33:33 +00:00
jfrijters 14a67e3bb4 - Added virtual method to MethodWrapper to do custom linking (i.e. defining the method).
- Added the notion of Java methods that don't have a corresponding CLR method (currently only for delegate constructors).
2009-03-06 06:43:40 +00:00
jfrijters dd73250d49 Added support for defining delegates in Java. 2009-03-06 05:33:08 +00:00
jfrijters 3ebf554517 Implemented ikvm.internal.ClassLiteral<T> to allow for more efficient class literals. 2009-03-04 05:47:18 +00:00
jfrijters f4991c7bd4 Made Mono compilation workarounds conditional on __MonoCS__. 2009-03-02 06:30:13 +00:00
jfrijters 1bab941b8f Workaround for apparent Mono (2.2 and 2.4 preview 2 tested) bug in Interlocked.Exchange. Doesn't repro in isolation (but I didn't try very hard). 2009-02-25 05:00:53 +00:00
jfrijters b1bae501cb Added caching to GetWrapperFromDotNetType. 2009-02-24 06:11:17 +00:00
jfrijters 6fd6fc2f3b Use double checked locking to avoid taking the lock in the common case when accessing TypeWrapper.ClassObject. 2009-02-24 04:42:20 +00:00
jfrijters 1125b3ab54 Make sure we get the right Type.GetTypeHandle and RuntimeTypeHandle.get_Value methods and cache them. 2009-02-23 05:17:21 +00:00
jfrijters 8ffc7143ee Intrisified two uses of Object.getClass(). 2009-02-22 08:19:30 +00:00
jfrijters 288a3fddbd Changed "InternalsVisibleTo" handling to be based on Assembly instead of class loader. 2009-02-10 07:24:30 +00:00
jfrijters 4700903ea8 Fixed AssemblyClassLoader.GetAssembly() to handle fake types. 2009-02-04 08:10:24 +00:00
jfrijters 830613d14a - Implemented GetEnclosingMethod for ReflectionOnly assemblies.
- Fixed pointer type check for method return types.
2009-02-04 06:51:40 +00:00
jfrijters f6477c70b6 Fixed CallerID method detection to work correctly for core library classes that aren't in IKVM.OpenJDK.Core.dll. 2009-01-17 11:05:10 +00:00
jfrijters ae4aaf150e Support CallerID in all core class library assemblies. 2009-01-05 06:29:18 +00:00
jfrijters 09c0ae966c Now that InternalsVisibleTo() has a side effect (in ikvmc, it potentially adds an InternalsVisibleToAttribute) swap around the tests, to only call InternalsVisibleTo() if the package names actually match. 2008-12-23 07:12:51 +00:00
jfrijters d2e52953a0 Made two access checks runtime-only, because for the static compiler they aren't necessary and they break InternalsVisibleToAttribute support. 2008-12-22 07:54:25 +00:00
jfrijters 344924593f Fixed regression introduced in previous change the __<clinit> handling: In dynamic mode the MethodInfo that we're calling can't be an unfinished method, because DynamicMethod's ILGenerator can't handle that. 2008-12-01 05:26:28 +00:00
jfrijters 9991b38140 Always emit an explicit method override if we've mangled the name/sig, because we can't predict whether it will be needed or not (without keeping track of the mangling in the base classes) and the cost is minimal since this doesn't happen all that often. 2008-12-01 05:23:51 +00:00
jfrijters 2e6feb0089 Miranda method should use mangled name (if the name is mangled). 2008-12-01 05:21:05 +00:00
jfrijters dc2c86da39 Fixed pointer detection to work for types with multiple indirection levels. 2008-11-17 06:15:16 +00:00
jfrijters faffcc628c Integrated IKVM.Reflection.Emit in ikvmc. 2008-11-14 08:42:07 +00:00
jfrijters 464553f841 Restructured handling of finalize() method a little, to prepare for IKVM.Reflection.Emit. 2008-11-14 08:37:22 +00:00
jfrijters 19f5c9cd08 finalize() and clone() should be final in cli.System.Object and cli.System.Exception. 2008-11-03 07:02:29 +00:00
jfrijters bd46f993fc Hide nested types generated for callerID support. 2008-11-03 06:48:05 +00:00
jfrijters 40113d0b5b Added support for detecting "access" bridge methods and not hide them. 2008-09-21 09:50:41 +00:00
jfrijters aaefc51c9b Removed last parts of old-style reflection. 2008-08-25 04:16:59 +00:00
jfrijters 99d296d322 - Removed "slow" reflection.
- Removed MethodWrapper.Invoke().
- Removed FieldWrapper.GetValue()/SetValue().
- Added ICustomInvoke for the few MethodWrappers that still require custom reflection invocation.
2008-08-21 06:53:48 +00:00