diff options
author | Jeroen Frijters <jeroen@sumatra.nl> | 2005-08-01 10:05:25 +0000 |
---|---|---|
committer | Jeroen Frijters <jeroen@sumatra.nl> | 2005-08-01 10:05:25 +0000 |
commit | 672a44224e5eadd6ff06a8f0e16775cb0bc0be4f (patch) | |
tree | 6fdb1afef2f038f85501f5a603328cc15e9c378f /vm | |
parent | 56020ed971a7e13f393351f834adc493ddeb1d1f (diff) | |
download | classpath-672a44224e5eadd6ff06a8f0e16775cb0bc0be4f.tar.gz |
2005-08-01 Jeroen Frijters <jeroen@frijters.net>
* NEWS: Added info about VM interfaces changes.
* java/lang/Class.java
(forName(String), forName(String, boolean, ClassLoader)): Simplified
VM interface.
* java/lang/ClassLoader.java
(loadedClasses): Removed field.
(defineClass(String,byte[],int,int,ProtectionDomain)): Removed
code to add class to loadedClasses.
* vm/reference/java/lang/VMClass.java
(forName(String)): Removed method.
(forName(String,boolean,ClassLoader)): New method.
(initialize): Removed method.
(loadArrayClass): Removed method.
* vm/reference/java/lang/VMClassLoader.java
(USE_VM_CACHE): Removed field.
(findLoadedClass): Made native.
Diffstat (limited to 'vm')
-rw-r--r-- | vm/reference/java/lang/VMClass.java | 32 | ||||
-rw-r--r-- | vm/reference/java/lang/VMClassLoader.java | 16 |
2 files changed, 12 insertions, 36 deletions
diff --git a/vm/reference/java/lang/VMClass.java b/vm/reference/java/lang/VMClass.java index 0ca0329ba..a48e299ee 100644 --- a/vm/reference/java/lang/VMClass.java +++ b/vm/reference/java/lang/VMClass.java @@ -245,18 +245,22 @@ final class VMClass static native ClassLoader getClassLoader(Class klass); /** - * VM implementors are free to make this method a noop if - * the default implementation is acceptable. + * Load the requested class and record the specified loader as the + * initiating class loader. * * @param name the name of the class to find + * @param initialize should the class initializer be run? + * @param loader the class loader to use (or null for the bootstrap loader) * @return the Class object representing the class or null for noop * @throws ClassNotFoundException if the class was not found by the - * classloader + * class loader * @throws LinkageError if linking the class fails * @throws ExceptionInInitializerError if the class loads, but an exception * occurs during initialization */ - static native Class forName(String name) throws ClassNotFoundException; + static native Class forName(String name, boolean initialize, + ClassLoader loader) + throws ClassNotFoundException; /** * Return whether this class is an array type. @@ -268,26 +272,6 @@ final class VMClass static native boolean isArray(Class klass); /** - * This method should trigger class initialization (if the - * class hasn't already been initialized) - * - * @param klass the Class object that's calling us - * @throws ExceptionInInitializerError if an exception - * occurs during initialization - */ - static native void initialize(Class klass); - - /** - * Load an array class. - * - * @return the Class object representing the class - * @throws ClassNotFoundException if the class was not found by the - * classloader - */ - static native Class loadArrayClass(String name, ClassLoader classloader) - throws ClassNotFoundException; - - /** * Throw a checked exception without declaring it. */ static native void throwException(Throwable t); diff --git a/vm/reference/java/lang/VMClassLoader.java b/vm/reference/java/lang/VMClassLoader.java index 69f812ca5..4fe124036 100644 --- a/vm/reference/java/lang/VMClassLoader.java +++ b/vm/reference/java/lang/VMClassLoader.java @@ -284,17 +284,9 @@ final class VMClassLoader } /** - * Set this field to true if the VM wants to keep its own cache. - * Note that this field is not final, to allow VMs to have a - * different setting without having to recompile ClassLoader.java. + * Find the class if this class loader previously defined this class + * or if this class loader has been recorded as the initiating class loader + * for this class. */ - static boolean USE_VM_CACHE = false; - - /** - * If the VM wants to keep its own cache, this method can be replaced. - */ - static Class findLoadedClass(ClassLoader cl, String name) - { - return (Class) cl.loadedClasses.get(name); - } + static native Class findLoadedClass(ClassLoader cl, String name); } |