[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