aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/natClassLoader.cc
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2005-02-07 21:29:04 +0000
committerTom Tromey <tromey@gcc.gnu.org>2005-02-07 21:29:04 +0000
commitf55db9c2fc24eff6cdbaa621851a4382f6dea939 (patch)
tree9321a4ce5d93e720f8ccef64c5a68a48525104d1 /libjava/java/lang/natClassLoader.cc
parentb0ad2de2032805ffbaff91d24647dc6fcc8a74ca (diff)
downloadgcc-f55db9c2fc24eff6cdbaa621851a4382f6dea939.zip
gcc-f55db9c2fc24eff6cdbaa621851a4382f6dea939.tar.gz
gcc-f55db9c2fc24eff6cdbaa621851a4382f6dea939.tar.bz2
defineclass.cc (handleClassBegin): Use _Jv_RegisterInitiatingLoader.
* defineclass.cc (handleClassBegin): Use _Jv_RegisterInitiatingLoader. * java/lang/Class.h (_Jv_UnregisterInitiatingLoader): Declare. * java/lang/natVMClassLoader.cc (resolveClass): Don't register class. Use _Jv_UnregisterInitiatingLoader. * java/lang/natClassLoader.cc (_Jv_UnregisterInitiatingLoader): New function. From-SVN: r94717
Diffstat (limited to 'libjava/java/lang/natClassLoader.cc')
-rw-r--r--libjava/java/lang/natClassLoader.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc
index 15fb9eb..17b2a88 100644
--- a/libjava/java/lang/natClassLoader.cc
+++ b/libjava/java/lang/natClassLoader.cc
@@ -110,6 +110,16 @@ _Jv_RegisterInitiatingLoader (jclass klass, java::lang::ClassLoader *loader)
loader->loadedClasses->put(klass->name->toString(), klass);
}
+// If we found an error while defining an interpreted class, we must
+// go back and unregister it.
+void
+_Jv_UnregisterInitiatingLoader (jclass klass, java::lang::ClassLoader *loader)
+{
+ if (! loader)
+ loader = java::lang::ClassLoader::getSystemClassLoader();
+ loader->loadedClasses->remove(klass->name->toString());
+}
+
// This function is called many times during startup, before main() is
// run. At that point in time we know for certain we are running
// single-threaded, so we don't need to lock when adding classes to the