Commit 4b84737d by Tom Tromey Committed by Tom Tromey

VMClassLoader.java (getVMClassLoader): New method.

	* gnu/gcj/runtime/VMClassLoader.java (getVMClassLoader): New
	method.
	(redirect): New static field.
	* java/lang/ClassLoader.java (getSystemClassLoader): Now
	native
	(getVMClassLoader0): Removed.
	* java/lang/natClassLoader.cc (getVMClassLoader0): Removed.
	(redirect): Removed.
	(getSystemClassLoader): Implemented.

From-SVN: r30075
parent 35c95c5a
1999-10-18 Tom Tromey <tromey@cygnus.com>
* gnu/gcj/runtime/VMClassLoader.java (getVMClassLoader): New
method.
(redirect): New static field.
* java/lang/ClassLoader.java (getSystemClassLoader): Now
native
(getVMClassLoader0): Removed.
* java/lang/natClassLoader.cc (getVMClassLoader0): Removed.
(redirect): Removed.
(getSystemClassLoader): Implemented.
1999-10-16 Anthony Green <green@cygnus.com> 1999-10-16 Anthony Green <green@cygnus.com>
* java/lang/ClassLoader.java (getSystemResource): Use * java/lang/ClassLoader.java (getSystemResource): Use
......
...@@ -59,4 +59,15 @@ final class VMClassLoader extends java.net.URLClassLoader ...@@ -59,4 +59,15 @@ final class VMClassLoader extends java.net.URLClassLoader
*/ */
protected final native Class findSystemClass(String name) protected final native Class findSystemClass(String name)
throws java.lang.ClassNotFoundException, java.lang.LinkageError; throws java.lang.ClassNotFoundException, java.lang.LinkageError;
// Return the sole VMClassLoader.
private static synchronized VMClassLoader getVMClassLoader ()
{
if (redirect == null)
redirect = new VMClassLoader ();
return redirect;
}
// The only VMClassLoader that can exist.
private static VMClassLoader redirect;
} }
...@@ -34,13 +34,7 @@ public abstract class ClassLoader { ...@@ -34,13 +34,7 @@ public abstract class ClassLoader {
return parent; return parent;
} }
private static native ClassLoader getVMClassLoader0 (); public static native ClassLoader getSystemClassLoader ();
static public ClassLoader getSystemClassLoader () {
if (system == null)
system = getVMClassLoader0 ();
return system;
}
/** /**
* Creates a <code>ClassLoader</code> with no parent. * Creates a <code>ClassLoader</code> with no parent.
......
...@@ -48,14 +48,13 @@ extern java::lang::Class ClassLoaderClass; ...@@ -48,14 +48,13 @@ extern java::lang::Class ClassLoaderClass;
/////////// java.lang.ClassLoader native methods //////////// /////////// java.lang.ClassLoader native methods ////////////
static gnu::gcj::runtime::VMClassLoader *redirect = 0; java::lang::ClassLoader *
java::lang::ClassLoader::getSystemClassLoader (void)
java::lang::ClassLoader*
java::lang::ClassLoader::getVMClassLoader0 ()
{ {
if (redirect == 0) JvSynchronize sync (&ClassLoaderClass);
redirect = new gnu::gcj::runtime::VMClassLoader; if (! system)
return redirect; system = gnu::gcj::runtime::VMClassLoader::getVMClassLoader ();
return system;
} }
void void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment