[vmkit-commits] [vmkit] r121251 - in /vmkit/branches/multi-vm/lib/J3: Classpath/ClasspathVMThrowable.inc Classpath/JavaUpcalls.cpp VMCore/JavaConstantPool.cpp VMCore/JavaObject.cpp VMCore/JavaObject.h VMCore/JavaString.cpp VMCore/Jni.cpp VMCore/JnjvmClassLoader.cpp

Gael Thomas gael.thomas at lip6.fr
Wed Dec 8 05:21:15 PST 2010


Author: gthomas
Date: Wed Dec  8 07:21:14 2010
New Revision: 121251

URL: http://llvm.org/viewvc/llvm-project?rev=121251&view=rev
Log:
verify some calls to getJVM

Modified:
    vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc
    vmkit/branches/multi-vm/lib/J3/Classpath/JavaUpcalls.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JavaConstantPool.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.h
    vmkit/branches/multi-vm/lib/J3/VMCore/JavaString.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/Jni.cpp
    vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc?rev=121251&r1=121250&r2=121251&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc Wed Dec  8 07:21:14 2010
@@ -38,9 +38,7 @@
 	mvm::Thread* mut = mvm::Thread::get();
   uint32 length = mut->getFrameContextLength();
 
-  JavaThread* th = JavaThread::j3Thread(mut);
-  Jnjvm* vm = th->getJVM();
- 
+  Jnjvm* vm = JavaThread::j3Thread(mut)->getJVM();
 
   if (sizeof(void*) == 4) {
     ClassArray* cl = vm->upcalls->ArrayOfInt;
@@ -98,7 +96,7 @@
   llvm_gcroot(sourceName, 0);
   llvm_gcroot(res, 0);
 
-  Jnjvm* vm = JavaThread::get()->getJVM();
+  Jnjvm* vm = meth->classDef->classLoader->vm;
   methodName = vm->internalUTF8ToStr(meth->name);
   Class* cl = meth->classDef;
   className = JavaString::internalToJava(cl->name, vm);

Modified: vmkit/branches/multi-vm/lib/J3/Classpath/JavaUpcalls.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/JavaUpcalls.cpp?rev=121251&r1=121250&r2=121251&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/JavaUpcalls.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/JavaUpcalls.cpp Wed Dec  8 07:21:14 2010
@@ -202,7 +202,7 @@
   
   BEGIN_NATIVE_EXCEPTION(0)
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
+  Jnjvm* vm = obj->getJVM();
   array = JavaString::strToArray(obj, vm);
   res = vm->constructString(array);
   

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JavaConstantPool.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JavaConstantPool.cpp?rev=121251&r1=121250&r2=121251&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JavaConstantPool.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JavaConstantPool.cpp Wed Dec  8 07:21:14 2010
@@ -515,8 +515,7 @@
 JavaString* JavaConstantPool::resolveString(const UTF8* utf8, uint16 index) {
   JavaString* str = NULL;
   llvm_gcroot(str, 0);
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  str = vm->internalUTF8ToStr(utf8);
+  str = classDef->classLoader->vm->internalUTF8ToStr(utf8);
   return str;
 }
 

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.cpp?rev=121251&r1=121250&r2=121251&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.cpp Wed Dec  8 07:21:14 2010
@@ -120,22 +120,22 @@
 
 void JavaObject::overflowThinLock(JavaObject* self) {
   llvm_gcroot(self, 0);
-  mvm::ThinLock::overflowThinLock(self, JavaThread::get()->getJVM()->lockSystem);
+  mvm::ThinLock::overflowThinLock(self, self->getJVM()->lockSystem);
 }
 
 void JavaObject::acquire(JavaObject* self) {
   llvm_gcroot(self, 0);
-  mvm::ThinLock::acquire(self, JavaThread::get()->getJVM()->lockSystem);
+  mvm::ThinLock::acquire(self, self->getJVM()->lockSystem);
 }
 
 void JavaObject::release(JavaObject* self) {
   llvm_gcroot(self, 0);
-  mvm::ThinLock::release(self, JavaThread::get()->getJVM()->lockSystem);
+  mvm::ThinLock::release(self, self->getJVM()->lockSystem);
 }
 
 bool JavaObject::owner(JavaObject* self) {
   llvm_gcroot(self, 0);
-  return mvm::ThinLock::owner(self, JavaThread::get()->getJVM()->lockSystem);
+  return mvm::ThinLock::owner(self, self->getJVM()->lockSystem);
 }
 
 void JavaObject::decapsulePrimitive(JavaObject* obj, Jnjvm *vm, jvalue* buf,

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.h
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.h?rev=121251&r1=121250&r2=121251&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.h (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JavaObject.h Wed Dec  8 07:21:14 2010
@@ -237,6 +237,8 @@
   
 public:
 
+	Jnjvm* getJVM() { return (Jnjvm*)getVirtualTable()->vm; }
+
   /// getClass - Returns the class of this object.
   ///
   static UserCommonClass* getClass(const JavaObject* self) {

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JavaString.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JavaString.cpp?rev=121251&r1=121250&r2=121251&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JavaString.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JavaString.cpp Wed Dec  8 07:21:14 2010
@@ -97,7 +97,7 @@
   llvm_gcroot(value, 0);
   value = JavaString::getValue(str);
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
+  Jnjvm* vm = str->getJVM();
   assert(vm && "No vm when destroying a string");
   if (value != NULL) vm->hashStr.removeUnlocked(value, str);
 }

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/Jni.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/Jni.cpp?rev=121251&r1=121250&r2=121251&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/Jni.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/Jni.cpp Wed Dec  8 07:21:14 2010
@@ -58,10 +58,9 @@
 
   JnjvmClassLoader* loader = 0;
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
   UserClass* currentClass = th->getCallingClassLevel(0);
   if (currentClass) loader = currentClass->classLoader;
-  else loader = vm->appClassLoader;
+  else loader = myVM(env)->appClassLoader;
 
   UserCommonClass* cl = loader->loadClassFromAsciiz(asciiz, true, true);
   if (cl && cl->asClass()) {
@@ -150,12 +149,12 @@
   llvm_gcroot(res, 0);
   llvm_gcroot(str, 0);
   
-  Jnjvm* vm = JavaThread::get()->getJVM();
-  
   verifyNull(Cl);
   UserCommonClass* cl = UserCommonClass::resolvedImplClass(Cl, true);
   if (!cl->isClass()) RETURN_FROM_JNI(0);
 
+  Jnjvm* vm = cl->classLoader->vm;
+  
   UserClass* realCl = cl->asClass();
   res = realCl->doNew();
   JavaMethod* init = realCl->lookupMethod(vm->upcalls->initName,
@@ -2505,9 +2504,8 @@
   llvm_gcroot(res, 0);
 
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
 
-  if (length < 0) vm->negativeArraySizeException(length);
+  if (length < 0) th->getJVM()->negativeArraySizeException(length);
   
   UserCommonClass* base =
     UserCommonClass::resolvedImplClass(elementClass, true);
@@ -2542,10 +2540,9 @@
   llvm_gcroot(res, 0);
   
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
   
   if (index >= ArrayObject::getSize(array)) {
-    vm->indexOutOfBounds(array, index);
+    th->getJVM()->indexOutOfBounds(array, index);
   }
   
   // Store local refererence.
@@ -2572,7 +2569,7 @@
   llvm_gcroot(val, 0);
 
   if (index >= ArrayObject::getSize(array)) {
-    JavaThread::get()->getJVM()->indexOutOfBounds(array, index);
+    myVM(env)->indexOutOfBounds(array, index);
   }
   
   // Store global reference.
@@ -2594,8 +2591,7 @@
   llvm_gcroot(res, 0);
   
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfBool->doNew(len);
+  res = th->getJVM()->upcalls->ArrayOfBool->doNew(len);
   jbooleanArray ret = (jbooleanArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2613,8 +2609,7 @@
   llvm_gcroot(res, 0);
 
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfByte->doNew(len);
+  res = th->getJVM()->upcalls->ArrayOfByte->doNew(len);
   jbyteArray ret = (jbyteArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2631,8 +2626,7 @@
   llvm_gcroot(res, 0);
   
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfChar->doNew(len);
+  res = th->getJVM()->upcalls->ArrayOfChar->doNew(len);
   jcharArray ret = (jcharArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2649,8 +2643,7 @@
   llvm_gcroot(res, 0);
   
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfShort->doNew(len);
+  res = th->getJVM()->upcalls->ArrayOfShort->doNew(len);
   jshortArray ret = (jshortArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2667,8 +2660,7 @@
   llvm_gcroot(res, 0);
   
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfInt->doNew(len);
+  res = th->getJVM()->upcalls->ArrayOfInt->doNew(len);
   jintArray ret = (jintArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2685,8 +2677,7 @@
   llvm_gcroot(res, 0);
   
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfLong->doNew(len);
+  res = th->getJVM()->upcalls->ArrayOfLong->doNew(len);
   jlongArray ret = (jlongArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2703,8 +2694,7 @@
   llvm_gcroot(res, 0);
   
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfFloat->doNew(len);
+  res = th->getJVM()->upcalls->ArrayOfFloat->doNew(len);
   jfloatArray ret = (jfloatArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -2721,8 +2711,7 @@
   llvm_gcroot(res, 0);
   
   JavaThread* th = JavaThread::get();
-  Jnjvm* vm = th->getJVM();
-  res = vm->upcalls->ArrayOfDouble->doNew(len);
+  res = th->getJVM()->upcalls->ArrayOfDouble->doNew(len);
   jdoubleArray ret = (jdoubleArray)th->pushJNIRef(res);
   RETURN_FROM_JNI(ret);
 
@@ -3369,7 +3358,7 @@
   if (Obj != NULL) {
 
     if (!JavaObject::owner(Obj)) {
-      JavaThread::get()->getJVM()->illegalMonitorStateException(Obj);    
+      myVM(env)->illegalMonitorStateException(Obj);    
     }
   
     JavaObject::release(Obj);
@@ -3385,8 +3374,7 @@
 
 jint GetJavaVM(JNIEnv *env, JavaVM **vm) {
   BEGIN_JNI_EXCEPTION
-  Jnjvm* myvm = JavaThread::get()->getJVM();
-  (*vm) = (JavaVM*)(void*)(&(myvm->javavmEnv));
+  (*vm) = (JavaVM*)(void*)(&(myVM(env)->javavmEnv));
   RETURN_FROM_JNI(0);
   END_JNI_EXCEPTION
   RETURN_FROM_JNI(0);
@@ -3491,8 +3479,7 @@
     Obj = *(JavaObject**)obj;
     llvm_gcroot(Obj, 0);
 
-    Jnjvm* vm = JavaThread::get()->getJVM();
-
+    Jnjvm* vm = myVM(env);
 
     vm->globalRefsLock.lock();
     JavaObject** res = vm->globalRefs.addJNIReference(Obj);
@@ -3547,22 +3534,22 @@
   llvm_gcroot(p, 0);
 
   JavaThread* th = JavaThread::get();
-  Jnjvm* myvm = th->getJVM();
-  UserClass* BB = myvm->upcalls->newDirectByteBuffer;
+  Jnjvm* vm = th->getJVM();
+  UserClass* BB = vm->upcalls->newDirectByteBuffer;
 
   res = BB->doNew();
 
 #if (__WORDSIZE == 32)
-  UserClass* PP = myvm->upcalls->newPointer32;
+  UserClass* PP = vm->upcalls->newPointer32;
   p = PP->doNew();
-  myvm->upcalls->dataPointer32->setInstanceInt32Field(p, (uint32)address);
+  vm->upcalls->dataPointer32->setInstanceInt32Field(p, (uint32)address);
 #else
-  UserClass* PP = myvm->upcalls->newPointer64;
+  UserClass* PP = vm->upcalls->newPointer64;
   p = PP->doNew();
-  myvm->upcalls->dataPointer64->setInstanceLongField(p, (jlong)address);
+  vm->upcalls->dataPointer64->setInstanceLongField(p, (jlong)address);
 #endif
 
-  myvm->upcalls->InitDirectByteBuffer->invokeIntSpecial(BB, res, 0, &p,
+  vm->upcalls->InitDirectByteBuffer->invokeIntSpecial(BB, res, 0, &p,
                                                         (uint32)capacity,
                                                         (uint32)capacity, 0);
 
@@ -3642,13 +3629,13 @@
 
   BEGIN_JNI_EXCEPTION
 
-  JavaThread* _th = JavaThread::get();
-  JavaObject* obj = _th->currentThread();
+  JavaThread* th = JavaThread::get();
+  JavaObject* obj = th->currentThread();
   llvm_gcroot(obj, 0);
 
-  Jnjvm* myvm = _th->getJVM();
+  Jnjvm* vm = th->getJVM();
   if (obj != 0) {
-    (*env) = &(myvm->jniEnv);
+    (*env) = &(vm->jniEnv);
     RETURN_FROM_JNI(JNI_OK);
   } else {
     (*env) = 0;

Modified: vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp?rev=121251&r1=121250&r2=121251&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp Wed Dec  8 07:21:14 2010
@@ -197,7 +197,6 @@
   UserClass* cl = internalLoad(name, doResolve, strName);
 
   if (!cl && doThrow) {
-    Jnjvm* vm = JavaThread::get()->getJVM();
     if (name->equals(vm->upcalls->NoClassDefFoundErrorName)) {
       fprintf(stderr, "Unable to load NoClassDefFoundError");
       abort();





More information about the vmkit-commits mailing list