aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/natClassLoader.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/lang/natClassLoader.cc')
-rw-r--r--libjava/java/lang/natClassLoader.cc25
1 files changed, 8 insertions, 17 deletions
diff --git a/libjava/java/lang/natClassLoader.cc b/libjava/java/lang/natClassLoader.cc
index e5ff17e..39ee0ba 100644
--- a/libjava/java/lang/natClassLoader.cc
+++ b/libjava/java/lang/natClassLoader.cc
@@ -58,15 +58,6 @@ java::lang::ClassLoader::getSystemClassLoader (void)
return system;
}
-void
-java::lang::ClassLoader::defineClass2 (jclass klass, jbyteArray data,
- jint offset, jint length)
-{
-#ifdef INTERPRETER
- _Jv_DefineClass (klass, data, offset, length);
-#endif
-}
-
java::lang::Class *
java::lang::ClassLoader::defineClass0 (jstring name,
jbyteArray data,
@@ -94,11 +85,11 @@ java::lang::ClassLoader::defineClass0 (jstring name,
klass->name = name2;
}
- // this will do the magic. loadInto also operates
- // as an exception trampoline for now...
- Throwable *ex = defineClass1 (klass, data, offset, length);
-
- if (ex) // we failed to load it
+ try
+ {
+ _Jv_DefineClass (klass, data, offset, length);
+ }
+ catch (java::lang::Throwable *ex)
{
klass->state = JV_STATE_ERROR;
klass->notifyAll ();
@@ -106,15 +97,15 @@ java::lang::ClassLoader::defineClass0 (jstring name,
_Jv_UnregisterClass (klass);
_Jv_MonitorExit (klass);
-
+
// FIXME: Here we may want to test that EX does
// indeed represent a valid exception. That is,
// anything but ClassNotFoundException,
// or some kind of Error.
-
+
JvThrow (ex);
}
-
+
// if everything proceeded sucessfully, we're loaded.
JvAssert (klass->state == JV_STATE_LOADED);