* 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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@28711
138bc75d-0d04-0410-961f-
82ee72b054a4
+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.
1999-08-12 Alexandre Oliva <oliva@dcc.unicamp.br>
* include/javaprims.h (TRUE, FALSE): Redefine as themselves.
AC_DEFINE(INTERPRETER)
fi)
AC_DEFINE(INTERPRETER)
fi)
-dnl This becomes -lffi if the interpreter is enables
+dnl This becomes -lffi if the interpreter is enabled.
INTERPSPEC=
AC_SUBST(INTERPSPEC)
INTERPSPEC=
AC_SUBST(INTERPSPEC)
* @author Kresten Krab Thorup
*/
* @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;
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.
* 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
*/
*
* @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)
throws java.lang.LinkageError
{
synchronized (clazz)
* @exception java.lang.LinkageError
* @exception java.lang.ClassNotFoundException
*/
* @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;
/*
throws java.lang.ClassNotFoundException, java.lang.LinkageError;
/*
#ifdef INTERPRETER
if (_Jv_IsInterpretedClass (this))
{
#ifdef INTERPRETER
if (_Jv_IsInterpretedClass (this))
{
- java::lang::ClassLoader::resolveClass (this);
+ java::lang::ClassLoader::resolveClass0 (this);
// Step 1.
_Jv_MonitorEnter (this);
// Step 1.
_Jv_MonitorEnter (this);
// the super class, so we use the Java method resolveClass, which will
// unlock it properly, should an exception happen.
// 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;
_Jv_InterpClass *clz = (_Jv_InterpClass*)klass;