Patch: FYI: disable resolveClass

Tom Tromey tromey@redhat.com
Tue Apr 19 22:25:00 GMT 2005


I'm checking this in on the trunk.

As discussed on the main list, there doesn't seem to be any need for
resolveClass to do anything.  This patch implements this discovery.

Tom

Index: ChangeLog
from  Tom Tromey  <tromey@redhat.com>
	* java/lang/VMClassLoader.java (transformException): Removed.
	(resolveClass): No longer native.  Now does nothing.
	* java/lang/natVMClassLoader.cc (resolveClass): Removed.

Index: java/lang/VMClassLoader.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/VMClassLoader.java,v
retrieving revision 1.16
diff -u -r1.16 VMClassLoader.java
--- java/lang/VMClassLoader.java 1 Apr 2005 19:19:13 -0000 1.16
+++ java/lang/VMClassLoader.java 19 Apr 2005 22:23:24 -0000
@@ -125,26 +125,11 @@
    *
    * @param c the class to resolve
    */
-  static final native void resolveClass(Class clazz);
-
-  static final void transformException(Class clazz, Throwable x)
+  static final void resolveClass(Class clazz)
   {
-    LinkageError e;
-    if (x instanceof LinkageError)
-      e = (LinkageError) x;
-    else if (x instanceof ClassNotFoundException)
-      {
-	e = new NoClassDefFoundError("while resolving class: "
-				     + clazz.getName());
-	e.initCause (x);
-      }
-    else
-      {
-	e = new LinkageError ("unexpected exception during linking: "
-			      + clazz.getName());
-	e.initCause (x);
-      }
-    throw e;
+    // There doesn't seem to be a need for this to do anything.
+    // Testing reveals that the JDK doesn't seem to do anything here,
+    // either.
   }
 
   /**
Index: java/lang/natVMClassLoader.cc
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/natVMClassLoader.cc,v
retrieving revision 1.11
diff -u -r1.11 natVMClassLoader.cc
--- java/lang/natVMClassLoader.cc 19 Apr 2005 06:36:10 -0000 1.11
+++ java/lang/natVMClassLoader.cc 19 Apr 2005 22:23:24 -0000
@@ -35,21 +35,6 @@
 #include <java/lang/Runtime.h>
 #include <java/util/HashSet.h>
 
-void
-java::lang::VMClassLoader::resolveClass (jclass klass)
-{
-  JvSynchronize sync (klass);
-  try
-    {
-      _Jv_Linker::wait_for_state (klass, JV_STATE_LINKED);
-    }
-  catch (java::lang::Throwable *x)
-    {
-      klass->set_state(JV_STATE_ERROR);
-      transformException(klass, x);
-    }
-}
-
 java::lang::Class *
 java::lang::VMClassLoader::defineClass (java::lang::ClassLoader *loader,
 					jstring name,



More information about the Java-patches mailing list