+1999-08-14 Per Bothner <per@bothner.com>
+
+ * resolve.cc (_Jv_PrepareClass): Use ClassLoader::resolveClass0.
+ * java/lang/natClass.cc (initializeClass): Likewise.
+ * java/lang/ClassLoader.java (resolveClass0): New static method.
+ (resolveClass): Call resolveClass0.
+ (findSystemClass): No longer static.
+
1999-08-12 Alexandre Oliva <oliva@dcc.unicamp.br>
* include/javaprims.h (TRUE, FALSE): Redefine as themselves.
* @author Kresten Krab Thorup
*/
-/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
- * Status: Just a stub; not useful at all.
- */
-
public abstract class ClassLoader {
static private ClassLoader system;
* For historical reasons, this method has a name which is easily
* misunderstood. Java classes are never ``resolved''. Classes are
* linked; whereas method and field references are resolved.
- * <P>
- * FIXME: The JDK documentation declares this method
- * <code>final</code>, we declare it <code>static</code> -- any
- * objections? This allows us to call it directly from native code
- * with less hassle.
*
* @param clazz the class to link.
* @exception java.lang.LinkageError
*/
- protected static void resolveClass(Class clazz)
+ protected final void resolveClass(Class clazz)
+ throws java.lang.LinkageError
+ {
+ resolveClass0(clazz);
+ }
+
+ static void resolveClass0(Class clazz)
throws java.lang.LinkageError
{
synchronized (clazz)
* @exception java.lang.LinkageError
* @exception java.lang.ClassNotFoundException
*/
- protected native static Class findSystemClass(String name)
+ protected native Class findSystemClass(String name)
throws java.lang.ClassNotFoundException, java.lang.LinkageError;
/*
// the super class, so we use the Java method resolveClass, which will
// unlock it properly, should an exception happen.
- java::lang::ClassLoader::resolveClass (klass->superclass);
+ java::lang::ClassLoader::resolveClass0 (klass->superclass);
_Jv_InterpClass *clz = (_Jv_InterpClass*)klass;