diff options
Diffstat (limited to 'libjava/java/lang/natVMClassLoader.cc')
| -rw-r--r-- | libjava/java/lang/natVMClassLoader.cc | 6 |
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(). |
