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