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

834 Коммитов

Автор SHA1 Сообщение Дата
jfrijters 0743299862 Handle case were there is no user class loader. 2009-04-06 05:23:04 +00:00
jfrijters f00d50ed0f Workaround for https://bugzilla.novell.com/show_bug.cgi?id=486307 2009-03-18 08:56:15 +00:00
jfrijters fbf4d5167a Rewrote exception handling to store Java exception state in our java.lang.Throwable class, instead of an additional object in a weak keyed map. 2009-03-16 05:50:59 +00:00
jfrijters 7ed63e8d01 Added (limited) support for defining instance fields on remapped types. The fields will only be available on the actual implementation types, not the types they shadow (accessing the field on a shadow instance is undefined, but for reflection we'll at least guarantee that an exception is thrown (current java.lang.IllegalArgumentException)). 2009-03-16 05:28:11 +00:00
jfrijters 546cc4fdba Implemented native library unloading to support evil trick that com.sun.jna.Native$DeleteNativeLibrary uses (it uses reflection to call ClassLoader$NativeLibrary.finalize() to force the native library to be unloaded, even though the class loader isn't garbage collected.) 2009-03-09 09:01:36 +00:00
jfrijters d4dc5a6479 Resolve ConstructorBuilder before invoking. 2009-03-08 06:21:14 +00:00
jfrijters 1157440aaa Fixed TypeBuilder check. 2009-03-08 06:20:35 +00:00
jfrijters 629416833c Delegate fixes. 2009-03-07 08:33:33 +00:00
jfrijters f780844c1c Fixed regression introduced in 0.38 that caused LinkageError to be thrown instead of ClassCircularyError. 2009-03-07 08:11:28 +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 4464f2e374 Fix. If we don't run the class initializer, we shouldn't still report its presence. 2009-03-04 13:52:05 +00:00
jfrijters 729e27537b Fixed first-pass compilation. 2009-03-04 10:57:42 +00:00
jfrijters 00908792ae Switched java.awt.event package from GNU Classpath to OpenJDK. 2009-03-04 08:18:36 +00:00
jfrijters 0f04e782c6 Added hack to skip running the static initializer when computing the serialVersionUID when running in ikvmstub. 2009-03-04 06:49:16 +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 e417a92a37 - Moved class literal TypeWrapper -> Type step into expression emitter.
- Fixed Class.desiredAssertionStatus() instrinsic to use the RemoveAsserts flag from the right class loader.
2009-03-02 06:31:55 +00:00
jfrijters f4991c7bd4 Made Mono compilation workarounds conditional on __MonoCS__. 2009-03-02 06:30:13 +00:00
jfrijters 05d0c7a5c6 Fixed bug introduced in recent changes. When the first entry on the stack contains a partial expression, it cannot be popped. 2009-03-02 04:52:05 +00:00
jfrijters f7f3ad1c6c Added hack to fail fast if we encounter (a particular kind of) corrupt assembly generated by some obfuscator. 2009-03-02 04:51:05 +00:00
jfrijters f80fc0203a Disable compiler warning. 2009-02-27 06:43:00 +00:00
jfrijters 536a99cc98 Made the reading of the ikvm.exports resource lazy. 2009-02-27 06:33:19 +00:00
jfrijters 7a9aa4d619 It turns out that constructing an AssemblyName is very expensive, so we simply use the string names. 2009-02-27 06:28:50 +00:00
jfrijters 4291ce372d - Added support for multi level stack tracking to CodeEmitter.
- Made most Pop emitting lazy to enable optimizing them away (together with corresponding push).
- Made loading class literal lazy, to enable optimizing them away when they aren't used (e.g. because an atomic intrinsic).
- Made Class.desiredAssertionStatus() into an intrinsic, to be able to optimize it away when -removeassertions is used.
2009-02-27 06:17:06 +00:00
jfrijters 8224903a75 Added a helper method to invoke AccessController.doPrivileged() and pass in explicit CallerID. 2009-02-27 06:05:22 +00:00
jfrijters 830f9aedf0 Reverted previous optimization that I'm not sure about anymore. The startup overhead of using a ConcurrentHashMap here may be too great. 2009-02-27 05:57:35 +00:00
jfrijters 3bc4241221 Fixed first-pass compilation. 2009-02-27 05:56:22 +00:00
jfrijters b54fbae544 Removed unnecessary field initialization and registerNative call. 2009-02-27 05:53:27 +00:00
jfrijters 7041ebc248 Added optimization to reflective instantiation to use Activator.CreateInstance() when that is almost as fast as our LCG based implementation (which has a far higher initial cost). 2009-02-25 05:02:35 +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 e228cf5ed0 Added caching to speed up Object.getClass(). 2009-02-24 06:11:54 +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 95c07f04c3 Added explicit null check (to avoid Type.GetTypeHandle form showing up in the stack trace) and don't do the optimization if we can't prove that either object isn't a ghost array. 2009-02-23 05:18:44 +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 9803e4805b Use "ikvm.exports" map for "wildcard exports" (i.e. assemblies that are referenced and whose types are available thru the assembly class loader). 2009-02-19 08:12:05 +00:00
jfrijters 68577d6313 Removed JIT perf workaround that is no longer necessary as of .NET 2.0 SP2 (aka .NET 3.5 SP1). 2009-02-16 06:02:02 +00:00
jfrijters e60dd1bff2 Made 32 bit floating point math more compatible by rounding to 32 bit after every operation. 2009-02-16 05:59:48 +00:00
jfrijters 843e78ccbe Use JMath functions (where possible and necessary) instead of .NET Math functions. 2009-02-16 05:13:49 +00:00
jfrijters c3f7d1f2a9 As of .NET 2.0 SP2 (aka .NET 3.5 SP1) the x86 JIT now properly aligns the stack when doing a conv.r8, so we can now use that instead of using our hack. 2009-02-12 07:59:17 +00:00
jfrijters bb7966d7d6 Speed up stack walking. 2009-02-12 06:25:07 +00:00
jfrijters 37356690e2 First pass compilation fix. 2009-02-11 05:27:55 +00:00
jfrijters 070d268277 Added supported for redirecting Runtime.exec("java ...") to ikvm.exe. 2009-02-10 15:21:41 +00:00
jfrijters 007b01b8a4 Renamed AssemblyClassLoader.Assembly to MainAssembly. 2009-02-10 07:27:25 +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 142e5e9726 Disable String.toCharArray() intrinsic, because it relies on globals. 2009-02-10 05:53:57 +00:00
jfrijters a352b35486 Fixed incredibly lame bug. The Target of a reused WeakReferences wasn't set. This would cause ghost arrays to sometimes lose their type. 2009-02-05 13:53:57 +00:00
jfrijters a9c13f45bc Refactored assembly resource loading and added support for delegating to sharedclassloader assembly groups. 2009-02-05 07:00:59 +00:00
jfrijters d829bde2e6 Cache assembly load failures (because the CLR binder also caches failures). 2009-02-05 06:44:30 +00:00
jfrijters 4700903ea8 Fixed AssemblyClassLoader.GetAssembly() to handle fake types. 2009-02-04 08:10:24 +00:00
jfrijters 5eebd6f17b Added AssemblyClassLoader.GetAssembly(TypeWrapper) and changed most code that assumed that an AssemblyClassLoader represented a single assembly to use it. 2009-02-04 07:24:44 +00:00
jfrijters 77b20a1cb8 Renamed ClassLoadWrapper.GetType(string) to GetGenericTypeDefinition() to make clear what it is used for. 2009-02-04 07:10:59 +00:00
jfrijters 046fd5c3de - Fixed tracer to only add a trace listener in executables. Bug #2533728. 2009-02-04 07:03:30 +00:00
jfrijters b33c19f438 Handle invokespecials that have been turned into errors in local variable analysis. 2009-02-04 06:52:53 +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 924307a099 Unloadable types in signatures are represented by Object, so they don't need to cause the member to be treated as inaccessible. 2009-02-04 06:50:22 +00:00
jfrijters bee9956608 Workaround for Mono bug 467230. 2009-01-20 05:14:17 +00:00
jfrijters be63d3d792 Workaround for Mono bug 467229. 2009-01-20 05:13:49 +00:00
jfrijters 59d5957edc Removed method that is no longer used. 2009-01-17 11:05:28 +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 9b0ca3cce3 Include helpful exception message in ClassCastException generated for ghost array casts. 2009-01-06 09:47:59 +00:00
jfrijters a2082be2f5 Use CallerID instead of stack walking. 2009-01-05 06:30:46 +00:00
jfrijters b5b83fa2f2 Added critical failure for, what should be, an impossible code path. 2009-01-05 06:30:13 +00:00
jfrijters ae4aaf150e Support CallerID in all core class library assemblies. 2009-01-05 06:29:18 +00:00
jfrijters 6c59d613bd Moved AccessController.doPrivileged() to Java and use CallerID to avoid stack walk. 2009-01-02 10:44:05 +00:00
jfrijters d987350ae2 Forked java/util/ResourceBundle.java to remove custom stack walking and use CallerID instead. 2009-01-02 08:49:18 +00:00
jfrijters 793d00fea7 Assemblies part of a shared class loader group should be supported by ikvmc as well. 2008-12-24 05:11:48 +00:00
jfrijters 968e7e067c Updated build to split IKVM.OpenJDK.ClassLibrary.dll into ten parts. 2008-12-23 07:28:20 +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 39b6ecfb4c Implemented shared class loader support. 2008-12-23 07:11:29 +00:00
jfrijters 94f4fe2ee2 Make ikvmc emit a warning whenever it emits code that throws a hard error. 2008-12-23 06:07:10 +00:00
jfrijters 1a98f51c37 Removed ResolverConfigurationImpl "native" methods that have been moved to Java side. 2008-12-23 05:33:40 +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 20cee82771 Don't load IKVM.Runtime.JNI.dll when "loading" a fake native library. 2008-12-22 07:34:37 +00:00
jfrijters e1658c03c4 Java allows public/protected members to expose package private classes, but when the caller isn't in the same assembly (or the assembly grants InternalsVisibleTo access to the caller) the CLR will disallow, so we have to support this scenario (currently by simply disallow the access at the Java level). 2008-12-22 05:52:49 +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 4c68432767 If the last call site of a subroutine wasn't reachable, the return switch would fall through potentially causing the code to be unverifiable. 2008-12-01 05:18:30 +00:00
jfrijters e2f8738bbc The check for unloadable types on the stack indexed the stack in the wrong order. 2008-12-01 05:16:30 +00:00
jfrijters c7b716d1b6 Added JniAssemblyInfo.cs. 2008-11-18 07:16:39 +00:00
jfrijters 7235538d3a Removed hard coded public key from JniInterface.cs. 2008-11-18 07:15:55 +00:00
jfrijters baf6228d28 Removed our version of System.Runtime.CompilerServices.ExtensionAttribute and instead add System.Core.jar to the compilation, this will allow us to reference the real ExtensionAttribute when it is available and yet the build will still work (albeit with a warning and without the ExtensionAttribute) when it is not available (i.e. when building on .NET 2.0). 2008-11-18 05:35:58 +00:00
jfrijters e62914f4a1 - Made java.lang.ClassLoader.loadClassInternal() accessible.
- Call ClassLoader.loadClassInternal() instead of ClassLoader.loadClass() to lock class loader object.
2008-11-18 05:25:06 +00:00
jfrijters 8ddf796565 Changed proxy stub name mangling to work around ildasm bug. 2008-11-17 07:17:31 +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 93fc80927d Fix bug in handling of jsr instruction. 2008-11-14 07:54:11 +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 02e63d6456 Moved .NEt 2.0 SP1 specific constructor invocation into a separate method, to avoid getting a MissingMethodException on .NET 2.0. 2008-11-03 06:59:59 +00:00
jfrijters bd46f993fc Hide nested types generated for callerID support. 2008-11-03 06:48:05 +00:00
jfrijters ae3172cde1 Re-introduced workaround for .NET JIT bug that causes .cctor not to run when a DynamicMethod invokes a method or gets/sets a field. 2008-09-25 05:17:21 +00:00
jfrijters f6628fce21 Removed hardcoded ikvm PublicKey from build. 2008-09-21 09:53:06 +00:00
jfrijters 40113d0b5b Added support for detecting "access" bridge methods and not hide them. 2008-09-21 09:50:41 +00:00
jfrijters 5cd8a0b5b9 Moved sound factory methods to runtime, to allow for easier experimentation with a sound implementation. 2008-09-21 09:45:00 +00:00
jfrijters ef06673e2d Fixed float/double array (de)serialization endianness. 2008-09-02 04:56:19 +00:00
jfrijters 2381194072 Removed the usage of .NET reflection. 2008-09-01 05:19:04 +00:00
jfrijters 490f744678 Moved all creations of DynamicMethod to util method that uniformly handles the fallback to the new .NET 2.0 SP1 constructor that support partial trust. 2008-09-01 04:01:36 +00:00
jfrijters 590cccc8d2 - Fixed VFS root directory entry.
- Removed no longer needed VM.isBooted() check (VM.isBooted() always returns true now on IKVM).
2008-08-28 06:51:31 +00:00
jfrijters bb94260c11 Switched from obsolete ConfigurationSettings.AppSettings to new ConfigurationManager.AppSettings. 2008-08-28 06:50:16 +00:00
jfrijters d439d5b1f4 Removed GNU Classpath specific code that I missed. 2008-08-25 05:12:08 +00:00
jfrijters 0f9117126a Removed class init workaround that is no longer required since .NET 2.0 SP1. 2008-08-25 04:51:06 +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
jfrijters 6bce58f1bc Changed JNI reflection to be based on Java reflection (where possible). 2008-08-21 06:40:22 +00:00
jfrijters 316dd359eb Use .NET reflection instead of soon to be removed MethodWrapper.Invoke(). 2008-08-21 06:16:40 +00:00
jfrijters fc6134bb84 Changed dynamic (for unloadable classes) bytecode handling to use Java reflection. 2008-08-21 06:09:33 +00:00
jfrijters 634e5058b6 Bug fix: dynamic (for unloadable classes) getfield/getstatic/invoke* bytecode compilation couldn't handle ghost types. 2008-08-21 06:06:17 +00:00
jfrijters b91bce8821 Added helper methods to no longer require reflection to instantiate DirectByteBuffer from JNI. 2008-08-21 06:05:24 +00:00
jfrijters 684cdf651e Generified all collections. 2008-08-15 12:01:06 +00:00
jfrijters e83a33bc99 Removed unused per-type class caching. 2008-08-15 06:27:12 +00:00
jfrijters 23a3550851 Eleminated some (CompilerClassLoader) downcasts by making the type of the DynamicTypeWrapper.classLoader field depend on whether we're compiling the runtime or ikvmc. 2008-08-14 07:52:27 +00:00
jfrijters 21c028191c Moved generated exception mapping code from ExceptionHelper to Throwable and made it slightly less hacky. 2008-08-14 06:51:32 +00:00
jfrijters a8d63a772c Replaced usage of BootstrapClassLoader with actual class loader in static compiler. 2008-08-14 05:42:43 +00:00
jfrijters 5617a219c6 Don't generated nested type when the outer type is in a different class loader (this can now happen with ikvmc's multi target support). 2008-08-14 05:40:40 +00:00
jfrijters 72b109c924 Removed our own tracking of LocalBuilders, because on .NET 2.0 LocalBuilder has a LocalIndex property. 2008-08-13 13:05:43 +00:00
jfrijters a9e9235f3b DynamicMethod support isn't needed in ikvmc. 2008-08-12 14:57:04 +00:00
jfrijters b024380b15 ResolveField() is not needed in ikvmc. 2008-08-12 14:51:14 +00:00
jfrijters 0ddb43d120 Replaced explicit usage of System.Reflection.Emit types with "using System.Reflection.Emit;" to make switching to Cecil easier. 2008-08-12 14:45:23 +00:00
jfrijters 0aa5eb9895 Oops. Previously forgot to add this file. 2008-08-12 09:18:12 +00:00
jfrijters b34cc1414c Removed files that are no longer needed no that GNU Classpath support has been dropped. 2008-08-06 12:51:07 +00:00
jfrijters 16a65985af Removed support for building with GNU Classpath class library. 2008-08-06 12:22:06 +00:00
jfrijters 93eaefc31a - Removed Mono workarounds that are no longer needed with Mono 2.0
- Fixed ikvmc build error introduced in previous patch.
2008-08-06 05:48:52 +00:00
jfrijters 379dd8bee3 - Added ghost array tagging to be able to report the instantiated class (instead of object[] which is allocated instead).
- Fixed ldc <class> where <class> is a ghost array.
- Fixed bug in instanceof <class> where <class> is a Serializable[].
2008-08-06 05:25:18 +00:00
jfrijters 05cbf17945 Jar meta entries are case insensitive. 2008-07-04 05:40:54 +00:00
jfrijters 96ed24e4ef Fix for bug #2006953. 2008-07-02 06:22:21 +00:00
jfrijters a03de46810 Don't generate unneeded GC.KeepAlive() in constructor for Exception types that don't have a finalize() method. 2008-06-24 14:47:45 +00:00
jfrijters 020e428000 Fixed regression. Made TypeWrapper.IsGhostArray safe to call on Unloadable types. 2008-06-18 10:23:37 +00:00
jfrijters 8b7b320f15 Fixed bug introduced by CallerID support. 2008-06-13 07:52:55 +00:00
jfrijters 909d78b0f7 - Renamed ClassLoader.NIL_CLASSLOADER to ClassLoader.DUMMY.
- Removed unused ClassLoader.registerNatives().
- Removed unnecessary field initializers in ClassLoader.
- Moved necessary field initializers in ClassLoader to constructor.
- Changed Thread to make use of ClassLoader.DUMMY, instead of having an extra field to keep track of contextClassLoader status.
2008-06-04 05:12:46 +00:00
jfrijters b1b3f8b4f5 - Renamed CountingILGenerator to CodeEmitter.
- Renamed CountingLabel to CodeEmitterLabel.
2008-06-03 12:10:07 +00:00
jfrijters 36aa7b1a6c Removed CodeEmitter abstract base class. 2008-06-03 09:17:31 +00:00
jfrijters cbeeb20318 Marked all static classes as static. 2008-06-03 07:13:49 +00:00
jfrijters c5dcd8dc53 Refactored finish state/methods from JavaTypeImpl into FinishContext. 2008-06-03 06:52:30 +00:00
jfrijters 7ee8a8b83b Renamed invokespecial stub to follow the common convention for not-visible-from-java members. 2008-06-02 06:28:29 +00:00
jfrijters f41a42949c - Renamed ClassFile.HasCallerID to distinguish it from MethodWrapper.HasCallerID.
- Added check to only recognize HasCallerID annotation in core library.
- Changed other locations that incorrectly used ClassFile.HasCallerID to use MethodWrapper.CallerID.
2008-06-02 06:20:29 +00:00
jfrijters 8c73f6947e Added optimization to omit callerid nested type inside core library. 2008-06-02 04:04:39 +00:00
jfrijters 5e4182edb5 - Implemented CallerID infrastructure.
- Marked various methods with HasCallerID annotation.
- Rewrote some methods to explicitly use CallerID.
2008-05-31 15:20:29 +00:00
jfrijters aa0bdc2280 Pass caller method instead of type to intrinsic infrastructure. 2008-05-31 10:22:37 +00:00
jfrijters 4835307e5e Removed asserts that no longer work since we're now security transparent. 2008-05-31 10:08:10 +00:00
jfrijters 84191f9c40 made classes static. 2008-05-31 10:00:29 +00:00
jfrijters 018eaf5acb Restructured code to remove (mcs) compiler warnings. 2008-05-20 07:43:42 +00:00
jfrijters 9c2dfec3c5 Added workarounds for mcs compiler bug (related to the mutual dependency of the runtime and class library assemblies). 2008-05-20 07:36:50 +00:00
jfrijters f2966d679c Added noconfig="true" to csc to prevent gmcs from sucking in reference to System.Core.dll (and thus complaining about our version of ExtensionAttribute). 2008-05-20 07:15:37 +00:00
jfrijters c4eb9596af - Use new more efficient float/double to/from int/long bits converters.
- Forward IOHelper.WriteDouble/WriteFloat to java.io.Bits to remove the need to worry about normalizing NaNs or not.
2008-05-09 05:59:59 +00:00
jfrijters 29f84a8850 - added more efficient float/double to/from int/long bits converters
- made Double.doubleToRawLongBits/longBitsToDouble and Float.floatToRawIntBits/intBitsToFloat intrinsics
- generalized the intrinsics support
2008-05-09 05:57:55 +00:00
jfrijters 191d045da4 Fix deserialization of double arrays. 2008-05-03 19:00:32 +00:00
jfrijters 1b027efce3 Moved java.lang.Thread "native" methods to Java. 2008-04-25 04:48:57 +00:00
jfrijters 7609085114 Forgot to cast result from GetClassFromTypeHandle to java.lang.Class. 2008-04-25 04:45:52 +00:00
jfrijters ec2228d04a Moved System.nanoTime() to Java. 2008-04-24 06:22:49 +00:00
jfrijters 7d472777de Moved a couple of java.lang.System native methods to the Java side. 2008-04-23 05:24:35 +00:00
jfrijters 6a1c4cea55 Use new .NET 2.0 API to get processor count. 2008-04-23 05:22:31 +00:00
jfrijters cd2ab36b74 Refactored class library initialization. 2008-04-23 04:25:21 +00:00
jfrijters e28c60d9a4 Added hack to support instantiating fake enums for types loaded in ReflectionOnly (to support custom attribute annotations that have enum values in ikvmstub). 2008-04-22 06:50:22 +00:00
jfrijters cb06062f15 Take advantage of the fact that we now have a real type to refer to, instead of doing the class lookup by name. 2008-04-22 06:48:30 +00:00
jfrijters 2c35fdd246 Moved "fake" type handling to the proper place. 2008-04-22 06:24:55 +00:00
jfrijters 1d1b043269 Fixed name mangling bug. Dots in nested type names should be mangled, because they shouldn't affect the package name. 2008-04-21 08:19:20 +00:00
jfrijters 23413c175e Added assembly location to verbose class cast exception if the assembly fullnames matches but the locations don't. 2008-04-21 04:27:59 +00:00
jfrijters 90caa038dd Added support for turning Java fields into .NET properties with an annotation. 2008-04-14 05:13:41 +00:00
jfrijters 2bbb4bc9cb Added support for filenames/paths with colons in them (on Win32) to Win32FileSystem.Canonicalize(). 2008-04-14 05:09:38 +00:00
jfrijters 7b24fc61d8 Fixed mapLibraryName to use platform detection instead of os.name property. 2008-04-07 04:30:04 +00:00
jfrijters 33e105654f Restored the special case for interface .cctor methods to fix bug #1930303 2008-04-01 17:39:07 +00:00
jfrijters 2d8516956b Made __Fields nested class abstract (it was already sealed) and removed the constructor. 2008-04-01 17:36:04 +00:00
jfrijters 36593f183b Set Thread context class loader for threads started from .NET. 2008-03-14 09:17:08 +00:00
jfrijters 12c8d2c307 Filter out HideFromReflection members. 2008-03-14 09:16:31 +00:00
jfrijters e5808c1188 Handle stack frames that contain methods in primitive types. 2008-03-14 09:15:55 +00:00
jfrijters e44a87fed7 Ignore codebase for dynamic assemblies. 2008-03-14 09:15:08 +00:00
jfrijters c428023090 Restructured code to remove compiler warnings. 2008-03-14 09:12:50 +00:00
jfrijters 74c64c8454 Use custom modifiers to make sure constructor signature is unique (if necessary). 2008-03-04 07:28:00 +00:00
jfrijters ca51feb27f Added support for defining unloadable (i.e. missing) types to use as custom modifiers in signatures. 2008-03-04 07:25:36 +00:00
jfrijters c591de8029 Ripped out annotation/constant pool support that is no longer needed. 2008-03-03 08:28:22 +00:00
jfrijters 53321c6fe9 Changed System.nanoTime() implementation to use Stopwatch.GetTimestamp(). 2008-03-03 07:27:38 +00:00
jfrijters 828a4de95d Replaced notion of DynamicOnly types with Fake types. Fake types are implemented as generic type instances and can have DynamicOnly methods. 2008-03-03 07:05:19 +00:00
jfrijters 68e4e912ab - Simplified annotation handling.
- Added support to Class.forName() for assembly qualified Java type names.
2008-02-29 08:03:09 +00:00
jfrijters 3460403e1f Hide ikvmc generated GetEnumerator() method from Java. 2008-02-29 08:01:34 +00:00
jfrijters 85ff0c380a - Reintroduced guard against recursive FinishCore invocations.
- Implemented support for annotations on .NET fields/methods/parameters.
2008-02-29 07:08:04 +00:00
jfrijters 5da414d650 Initialize class library in JVM_CreateJavaVM. 2008-02-29 07:06:07 +00:00
jfrijters d04c813e3f - Added -removeassertions optimization option to ikvmc.
- Added -removeassertions to IKVM.OpenJDK.ClassLibrary.dll build.
- Don't look at unreachable instructions when determining if a method needs a line number table.
2008-02-27 09:04:19 +00:00
jfrijters 95ce4405cd - Forked Class, Constructor and Field.
- Made class annotation handling lazy and bypass encode/decode.
2008-02-19 16:52:53 +00:00
jfrijters aa715b2fac Fixed regression in return value annotation value. 2008-02-19 09:44:40 +00:00
jfrijters a69bb1e802 Construct custom attribute annotation proxies directly instead of going through the trouble to encode/decode them. 2008-02-17 11:33:03 +00:00
jfrijters f238214cfa - Optimized codegen for lcmp, fcmp<x>, dcmp<x> and shift opcodes.
- Moved temp local handling to CodeEmitter.
2008-02-15 15:32:51 +00:00
jfrijters 71870de395 Made ExtensionAttribute public during first-pass compilation, otherwise ikvmc won't see it. 2008-02-15 15:20:14 +00:00
jfrijters b5c5f18679 - Added support for defining extension methods in the core class library assembly (without taking a System.Core.dll dependency).
- Added the first two extension methods.
2008-02-10 11:20:52 +00:00
jfrijters c74b70d904 - Don't instantiate DotNetTypeWrapper before knowing it's the right one.
- Reuse name instead of recomputing it in the DotNetTypeWrapper constructor.
2008-02-10 09:05:53 +00:00
jfrijters fe81227fee Reintroduced baked TypeBuilder scrubbing hack for .NET 2.0 SP1. 2008-02-10 08:45:27 +00:00
jfrijters c5ca5009ae - Use assembly qualified type names in annotation parameters when referencing a class.
- Renamed GetEnumerator method in implicit IEnumerable implementation to work around lame bug in Xml serialization.
2008-02-09 17:37:38 +00:00
jfrijters 1c3e9561fe Handle converting forms of fstore/dstore to prevent Debug.Assert from firing. 2008-02-09 17:35:30 +00:00
jfrijters 957904c9a2 Box/unbox ghost references when (de)serializing. 2008-02-09 17:34:50 +00:00
jfrijters abdba87542 - Moved common assembly attributes to single file (CommonAssemblyInfo.cs).
- Added IKVM.Runtime.JNI project to Visual Studio solution.
- Added atomic.cs to Visual Studio projects.
- Added SecurityCritical and AllowPartiallyTrustedCallers attributes to IKVM.Runtime.dll.
2008-01-03 09:45:49 +00:00
jfrijters 0b07059d24 Fixed JNI regression in ikvmc. 2008-01-03 09:42:14 +00:00
jfrijters 6fff8e1ac0 Partial Trust fixes:
- Added accessor methods for "slot" to Method & Constructor.
- Implemented System.setIn0, setOut0, setErr0 in map.xml.
- Hacked sun.misc.SharedSecrets to replace Unsafe.ensureClassInitialize() with direct calls.
- Replaced java.nio.Bits.byteOrder() with simple System.BitConver.IsLittleEndian based implementation.
- Disabled DynamicMethodSupport when running in partial trust.
- Ignore SecurityException in CanonicalizePath.
- Don't trigger load of JNI assembly when "loading" a fake system library.
2007-12-28 14:55:33 +00:00
jfrijters 1ec1db7cc7 Stupid fix. 2007-12-28 14:36:51 +00:00
jfrijters 357555cb59 Indirectly refer to JNI assembly. 2007-12-28 14:36:30 +00:00
jfrijters 70aa740f1c Intrinsified AtomicReferenceFieldUpdater.newUpdater(). 2007-12-28 10:23:46 +00:00
jfrijters 83e77754db Added support for registering a delegate that gets called after the type is baked. 2007-12-28 10:22:06 +00:00
jfrijters c25f154eae Generic type instances can't be inner classes. 2007-12-27 15:41:43 +00:00
jfrijters e2c7ceb1d5 - Moved some calls to methods with a LinkDemand (that fails in partial trust) to a separate methods.
- Added stuff to map.xml to remove the need for reflection in VM / Library bootstrap.
- Inverted IKVM.Runtime.JNI dependency in stack walking code.
2007-12-27 15:16:49 +00:00