* java/lang/ClassLoader.java (system): Remove static field.
authorbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Sep 2001 01:17:24 +0000 (01:17 +0000)
committerbothner <bothner@138bc75d-0d04-0410-961f-82ee72b054a4>
Sat, 1 Sep 2001 01:17:24 +0000 (01:17 +0000)
(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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45343 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/java/lang/ClassLoader.java
libjava/java/lang/natClassLoader.cc
libjava/prims.cc

index 103e32b..5170b9a 100644 (file)
@@ -1,3 +1,14 @@
+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>
 
        * java/io/BufferedReader.java, java/io/ObjectInput.java,
index 9c4b3c8..ce6962e 100644 (file)
@@ -34,7 +34,6 @@ import java.util.Stack;
 
 public abstract class ClassLoader
 {
-  static private ClassLoader system;
   private ClassLoader parent;
   private HashMap definedPackages = new HashMap();
 
@@ -46,9 +45,7 @@ public abstract class ClassLoader
 
   public static ClassLoader getSystemClassLoader ()
   {
-    if (system == null)
-      system = gnu.gcj.runtime.VMClassLoader.instance;
-    return system;
+    return gnu.gcj.runtime.VMClassLoader.instance;
   }
 
   /**
@@ -120,7 +117,7 @@ public abstract class ClassLoader
          if (parent != null)
            return parent.loadClass (name, link);
          else
-           c = system.findClass (name);
+           c = gnu.gcj.runtime.VMClassLoader.instance.findClass (name);
        } catch (ClassNotFoundException ex) {
          /* ignore, we'll try findClass */;
        }
@@ -464,7 +461,7 @@ public abstract class ClassLoader
   protected final Class findSystemClass(String name) 
     throws java.lang.ClassNotFoundException
   {
-    return getSystemClassLoader ().loadClass (name);
+    return gnu.gcj.runtime.VMClassLoader.instance.loadClass (name);
   }
 
   /*
index 0a82ee9..f0794c7 100644 (file)
@@ -481,12 +481,8 @@ _Jv_FindClass (_Jv_Utf8Const *name, java::lang::ClassLoader *loader)
        }
       else 
        {
-         java::lang::ClassLoader *sys = java::lang::ClassLoader::system;
-         if (sys == NULL)
-           {
-             _Jv_InitClass (&ClassLoaderClass);
-             sys = java::lang::ClassLoader::getSystemClassLoader ();
-           }
+         java::lang::ClassLoader *sys
+           = java::lang::ClassLoader::getSystemClassLoader ();
 
          // Load using the bootstrap loader jvmspec 5.3.1.
          klass = sys->loadClass (sname, false); 
index 01c23b8..6a13ed5 100644 (file)
@@ -64,6 +64,7 @@ details.  */
 #include <java/lang/reflect/Modifier.h>
 #include <java/io/PrintStream.h>
 #include <java/lang/UnsatisfiedLinkError.h>
+#include <gnu/gcj/runtime/VMClassLoader.h>
 
 #ifdef USE_LTDL
 #include <ltdl.h>
@@ -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
          // reference to the previous classloader.
          _Jv_Jar_Class_Path = strdup (name);
-         java::lang::ClassLoader::system = NULL;
+         gnu::gcj::runtime::VMClassLoader::instance = NULL;
        }
     }
   catch (java::lang::Throwable *t)