summaryrefslogtreecommitdiff
path: root/vm
diff options
context:
space:
mode:
authorJeroen Frijters <jeroen@sumatra.nl>2005-08-01 10:05:25 +0000
committerJeroen Frijters <jeroen@sumatra.nl>2005-08-01 10:05:25 +0000
commit672a44224e5eadd6ff06a8f0e16775cb0bc0be4f (patch)
tree6fdb1afef2f038f85501f5a603328cc15e9c378f /vm
parent56020ed971a7e13f393351f834adc493ddeb1d1f (diff)
downloadclasspath-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.java32
-rw-r--r--vm/reference/java/lang/VMClassLoader.java16
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);
}