aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/natVMClassLoader.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/lang/natVMClassLoader.cc')
-rw-r--r--libjava/java/lang/natVMClassLoader.cc6
1 files changed, 4 insertions, 2 deletions
diff --git a/libjava/java/lang/natVMClassLoader.cc b/libjava/java/lang/natVMClassLoader.cc
index 2e7b90d..bffbfc0 100644
--- a/libjava/java/lang/natVMClassLoader.cc
+++ b/libjava/java/lang/natVMClassLoader.cc
@@ -71,16 +71,18 @@ java::lang::VMClassLoader::defineClass (java::lang::ClassLoader *loader,
klass->name = name2;
}
+ _Jv_Utf8Const *found_name = NULL;
try
{
- _Jv_DefineClass (klass, data, offset, length, pd);
+ _Jv_DefineClass (klass, data, offset, length, pd, &found_name);
}
catch (java::lang::Throwable *ex)
{
klass->state = JV_STATE_ERROR;
klass->notifyAll ();
- _Jv_UnregisterInitiatingLoader (klass, klass->loader);
+ if (found_name != NULL)
+ _Jv_UnregisterInitiatingLoader (klass, klass->loader);
// If EX is not a ClassNotFoundException, that's ok, because we
// account for the possibility in defineClass().