[llvm-commits] [vmkit] r50627 - in /vmkit/trunk/lib/JnJVM/VMCore: JavaClass.cpp JavaJIT.cpp
Nicolas Geoffray
nicolas.geoffray at lip6.fr
Sun May 4 13:09:55 PDT 2008
Author: geoffray
Date: Sun May 4 15:09:55 2008
New Revision: 50627
URL: http://llvm.org/viewvc/llvm-project?rev=50627&view=rev
Log:
Revert 50626 in JavaClass, and do the catch in JavaJIT.
Modified:
vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp?rev=50627&r1=50626&r2=50627&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaClass.cpp Sun May 4 15:09:55 2008
@@ -215,20 +215,7 @@
if (isNative(access)) {
llvmFunction = jit.nativeCompile();
} else {
- JavaObject* exc = 0;
- try {
- llvmFunction = jit.javaCompile();
- } catch(...) {
- // Happens when it can not load an exception class
- classDef->release();
- exc = JavaThread::getJavaException();
- assert(exc && "no exception?");
- JavaThread::clearException();
- }
- if (exc) {
- Jnjvm* vm = JavaThread::get()->isolate;
- vm->errorWithExcp(Jnjvm::NoClassDefFoundError, exc);
- }
+ llvmFunction = jit.javaCompile();
}
}
// We can compile it, since if we're here, it's for a good reason
Modified: vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp?rev=50627&r1=50626&r2=50627&view=diff
==============================================================================
--- vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp (original)
+++ vmkit/trunk/lib/JnJVM/VMCore/JavaJIT.cpp Sun May 4 15:09:55 2008
@@ -824,7 +824,22 @@
ex->catche = reader->readU2();
if (ex->catche) {
- Class* cl = (Class*)(ctpInfo->loadClass(ex->catche));
+ JavaObject* exc = 0;
+ Class* cl = 0;
+ try {
+ cl = (Class*)(ctpInfo->loadClass(ex->catche));
+ } catch(...) {
+ compilingClass->release();
+ exc = JavaThread::getJavaException();
+ assert(exc && "no exception?");
+ JavaThread::clearException();
+ }
+
+ if (exc) {
+ Jnjvm* vm = JavaThread::get()->isolate;
+ vm->errorWithExcp(Jnjvm::NoClassDefFoundError, exc);
+ }
+
ex->catchClass = cl;
} else {
ex->catchClass = Classpath::newThrowable;
More information about the llvm-commits
mailing list