[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