[vmkit-commits] [vmkit] r96102 - in /vmkit/trunk/lib/J3: Classpath/ClasspathVMRuntime.inc VMCore/JavaRuntimeJIT.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sat Feb 13 09:45:01 PST 2010


Author: geoffray
Date: Sat Feb 13 11:45:00 2010
New Revision: 96102

URL: http://llvm.org/viewvc/llvm-project?rev=96102&view=rev
Log:
Fix calls to startJNI and endJNI from Classpath.


Modified:
    vmkit/trunk/lib/J3/Classpath/ClasspathVMRuntime.inc
    vmkit/trunk/lib/J3/VMCore/JavaRuntimeJIT.cpp

Modified: vmkit/trunk/lib/J3/Classpath/ClasspathVMRuntime.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/Classpath/ClasspathVMRuntime.inc?rev=96102&r1=96101&r2=96102&view=diff

==============================================================================
--- vmkit/trunk/lib/J3/Classpath/ClasspathVMRuntime.inc (original)
+++ vmkit/trunk/lib/J3/Classpath/ClasspathVMRuntime.inc Sat Feb 13 11:45:00 2010
@@ -81,9 +81,8 @@
 #endif
 
 typedef int (*onLoad_t)(const void**, void*);
-extern "C" void  j3EndJNI(uint32** old, void** oldBuf);
-extern "C" void  j3StartJNI(uint32* num, uint32** old, void* newBuf,
-                               void** oldBuf, mvm::KnownFrame* Frame);
+extern "C" void  j3EndJNI(uint32** old);
+extern "C" void  j3StartJNI(uint32* num, uint32** old, mvm::KnownFrame* Frame);
 
 extern "C" void callOnLoad(void* res, JnjvmClassLoader* loader, Jnjvm* vm)
   __attribute__ ((noinline));
@@ -96,18 +95,11 @@
   if (onLoad) {
     uint32 num = 0;
     uint32* old = 0;
-    void* oldBuf = 0;
     mvm::KnownFrame Frame;
-    jmp_buf buf;
     
-    if (setjmp(buf) == 0) {
-      // Push an unmeaningful value in the addresses field to let the
-      // stack consistent with Java frames/native frames.
-      j3StartJNI(&num, &old, (void*)&buf, &oldBuf, &Frame);
-      onLoad(&vm->javavmEnv, res);
-    }
-
-    j3EndJNI(&old, &oldBuf);
+    j3StartJNI(&num, &old, &Frame);
+    onLoad(&vm->javavmEnv, res);
+    j3EndJNI(&old);
   }
 }
 

Modified: vmkit/trunk/lib/J3/VMCore/JavaRuntimeJIT.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/trunk/lib/J3/VMCore/JavaRuntimeJIT.cpp?rev=96102&r1=96101&r2=96102&view=diff

==============================================================================
--- vmkit/trunk/lib/J3/VMCore/JavaRuntimeJIT.cpp (original)
+++ vmkit/trunk/lib/J3/VMCore/JavaRuntimeJIT.cpp Sat Feb 13 11:45:00 2010
@@ -340,8 +340,8 @@
 }
 
 extern "C" void* j3StartJNI(uint32* localReferencesNumber,
-                               uint32** oldLocalReferencesNumber,
-                               mvm::KnownFrame* Frame) 
+                            uint32** oldLocalReferencesNumber,
+                            mvm::KnownFrame* Frame) 
   __attribute__((noinline));
 
 // Never throws. Does not call Java code. Can not yied a GC.





More information about the vmkit-commits mailing list