Commit 8635bb79 by Per Bothner Committed by Per Bothner

ClassLoader.java (system): Remove static field.


	* java/lang/ClassLoader.java (system):  Remove static field.
	(getSystemClassLoader):  Get gnu.gcj.runtime.VMClassLoader.instance
	directly instead of using it to set the system field.
	(loadClass):  Use VMClassLoader.instance instead of system field.
	(findSystemClass):   Similar.
	* prims.cc (_Jv_RunMain):  Clear VMClassLoader::instance rather
	than ClassLoader::system which no longer exists.
	* java/lang/natClassLoader.java (_Jv_FindClass):  Simplify.

From-SVN: r45343
parent 788d7b94
2001-08-31 Per Bothner <per@bothner.com>
* java/lang/ClassLoader.java (system): Remove static field.
(getSystemClassLoader): Get gnu.gcj.runtime.VMClassLoader.instance
directly instead of using it to set the system field.
(loadClass): Use VMClassLoader.instance instead of system field.
(findSystemClass): Similar.
* prims.cc (_Jv_RunMain): Clear VMClassLoader::instance rather
than ClassLoader::system which no longer exists.
* java/lang/natClassLoader.java (_Jv_FindClass): Simplify.
2001-08-31 Tom Tromey <tromey@redhat.com> 2001-08-31 Tom Tromey <tromey@redhat.com>
* java/io/BufferedReader.java, java/io/ObjectInput.java, * java/io/BufferedReader.java, java/io/ObjectInput.java,
......
...@@ -34,7 +34,6 @@ import java.util.Stack; ...@@ -34,7 +34,6 @@ import java.util.Stack;
public abstract class ClassLoader public abstract class ClassLoader
{ {
static private ClassLoader system;
private ClassLoader parent; private ClassLoader parent;
private HashMap definedPackages = new HashMap(); private HashMap definedPackages = new HashMap();
...@@ -46,9 +45,7 @@ public abstract class ClassLoader ...@@ -46,9 +45,7 @@ public abstract class ClassLoader
public static ClassLoader getSystemClassLoader () public static ClassLoader getSystemClassLoader ()
{ {
if (system == null) return gnu.gcj.runtime.VMClassLoader.instance;
system = gnu.gcj.runtime.VMClassLoader.instance;
return system;
} }
/** /**
...@@ -120,7 +117,7 @@ public abstract class ClassLoader ...@@ -120,7 +117,7 @@ public abstract class ClassLoader
if (parent != null) if (parent != null)
return parent.loadClass (name, link); return parent.loadClass (name, link);
else else
c = system.findClass (name); c = gnu.gcj.runtime.VMClassLoader.instance.findClass (name);
} catch (ClassNotFoundException ex) { } catch (ClassNotFoundException ex) {
/* ignore, we'll try findClass */; /* ignore, we'll try findClass */;
} }
...@@ -464,7 +461,7 @@ public abstract class ClassLoader ...@@ -464,7 +461,7 @@ public abstract class ClassLoader
protected final Class findSystemClass(String name) protected final Class findSystemClass(String name)
throws java.lang.ClassNotFoundException throws java.lang.ClassNotFoundException
{ {
return getSystemClassLoader ().loadClass (name); return gnu.gcj.runtime.VMClassLoader.instance.loadClass (name);
} }
/* /*
......
...@@ -481,12 +481,8 @@ _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader) ...@@ -481,12 +481,8 @@ _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
} }
else else
{ {
java::lang::ClassLoader *sys = java::lang::ClassLoader::system; java::lang::ClassLoader *sys
if (sys == NULL) = java::lang::ClassLoader::getSystemClassLoader ();
{
_Jv_InitClass (&ClassLoaderClass);
sys = java::lang::ClassLoader::getSystemClassLoader ();
}
// Load using the bootstrap loader jvmspec 5.3.1. // Load using the bootstrap loader jvmspec 5.3.1.
klass = sys->loadClass (sname, false); klass = sys->loadClass (sname, false);
......
...@@ -64,6 +64,7 @@ details. */ ...@@ -64,6 +64,7 @@ details. */
#include <java/lang/reflect/Modifier.h> #include <java/lang/reflect/Modifier.h>
#include <java/io/PrintStream.h> #include <java/io/PrintStream.h>
#include <java/lang/UnsatisfiedLinkError.h> #include <java/lang/UnsatisfiedLinkError.h>
#include <gnu/gcj/runtime/VMClassLoader.h>
#ifdef USE_LTDL #ifdef USE_LTDL
#include <ltdl.h> #include <ltdl.h>
...@@ -921,7 +922,7 @@ _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv, ...@@ -921,7 +922,7 @@ _Jv_RunMain (jclass klass, const char *name, int argc, const char **argv,
// jar file only. The easiest way to do this is to lose our // jar file only. The easiest way to do this is to lose our
// reference to the previous classloader. // reference to the previous classloader.
_Jv_Jar_Class_Path = strdup (name); _Jv_Jar_Class_Path = strdup (name);
java::lang::ClassLoader::system = NULL; gnu::gcj::runtime::VMClassLoader::instance = NULL;
} }
} }
catch (java::lang::Throwable *t) catch (java::lang::Throwable *t)
......
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