[vmkit-commits] [vmkit] r120020 - in /vmkit/branches/multi-vm/lib/J3: Classpath/ClasspathConstructor.inc Classpath/ClasspathMethod.inc Classpath/ClasspathVMStackWalker.inc Classpath/ClasspathVMThrowable.inc VMCore/JnjvmClassLoader.cpp
Gael Thomas
gael.thomas at lip6.fr
Tue Nov 23 05:13:30 PST 2010
Author: gthomas
Date: Tue Nov 23 07:13:30 2010
New Revision: 120020
URL: http://llvm.org/viewvc/llvm-project?rev=120020&view=rev
Log:
split the JavaThread and the mvm::Thread (in progress) - 2
Modified:
vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathConstructor.inc
vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathMethod.inc
vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMStackWalker.inc
vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc
vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp
Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathConstructor.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathConstructor.inc?rev=120020&r1=120019&r2=120020&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathConstructor.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathConstructor.inc Tue Nov 23 07:13:30 2010
@@ -117,15 +117,16 @@
}
}
- JavaThread* th = JavaThread::get();
TRY {
meth->invokeIntSpecialBuf(vm, cl, res, buf);
} CATCH {
- excp = th->getJavaException();
+ excp = JavaThread::get()->getJavaException();
} END_CATCH;
+ mvm::Thread* mut = mvm::Thread::get();
+ JavaThread* th = JavaThread::j3Thread(mut);
if (excp) {
if (JavaObject::getClass(excp)->isAssignableFrom(vm->upcalls->newException)) {
- th->clearException();
+ mut->clearException();
// If it's an exception, we encapsule it in an
// invocationTargetException
vm->invocationTargetException(excp);
Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathMethod.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathMethod.inc?rev=120020&r1=120019&r2=120020&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathMethod.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathMethod.inc Tue Nov 23 07:13:30 2010
@@ -150,32 +150,33 @@
}
}
- JavaThread* th = JavaThread::get();
-#define RUN_METH(TYPE, VAR) \
- TRY { \
- if (isVirtual(meth->access)) { \
- if (isPublic(meth->access) && !isFinal(meth->access) && \
- !isFinal(meth->classDef->access)) { \
- VAR = meth->invoke##TYPE##VirtualBuf(vm, cl, obj, buf); \
- } else { \
- VAR = meth->invoke##TYPE##SpecialBuf(vm, cl, obj, buf); \
- } \
- } else { \
- VAR = meth->invoke##TYPE##StaticBuf(vm, cl, buf); \
- } \
- } CATCH { \
- exc = th->getJavaException(); \
- } END_CATCH; \
- if (exc) { \
- if (JavaObject::getClass(exc)->isAssignableFrom( \
- vm->upcalls->newException)) { \
- th->clearException(); \
- th->getJVM()->invocationTargetException(exc); \
- } else { \
- th->throwPendingException(); \
- } \
- return NULL; \
+#define RUN_METH(TYPE, VAR) \
+ TRY { \
+ if (isVirtual(meth->access)) { \
+ if (isPublic(meth->access) && !isFinal(meth->access) && \
+ !isFinal(meth->classDef->access)) { \
+ VAR = meth->invoke##TYPE##VirtualBuf(vm, cl, obj, buf); \
+ } else { \
+ VAR = meth->invoke##TYPE##SpecialBuf(vm, cl, obj, buf); \
+ } \
+ } else { \
+ VAR = meth->invoke##TYPE##StaticBuf(vm, cl, buf); \
+ } \
+ } CATCH { \
+ exc = JavaThread::get()->getJavaException(); \
+ } END_CATCH; \
+ mvm::Thread* mut = mvm::Thread::get(); \
+ JavaThread* th = JavaThread::j3Thread(mut); \
+ if (exc) { \
+ if (JavaObject::getClass(exc)->isAssignableFrom( \
+ vm->upcalls->newException)) { \
+ mut->clearException(); \
+ th->getJVM()->invocationTargetException(exc); \
+ } else { \
+ th->throwPendingException(); \
+ } \
+ return NULL; \
}
Typedef* retType = sign->getReturnType();
Modified: vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMStackWalker.inc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMStackWalker.inc?rev=120020&r1=120019&r2=120020&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMStackWalker.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMStackWalker.inc Tue Nov 23 07:13:30 2010
@@ -37,9 +37,10 @@
BEGIN_NATIVE_EXCEPTION(0)
- JavaThread* th = JavaThread::get();
+ mvm::Thread* mut = mvm::Thread::get();
+ JavaThread* th = JavaThread::j3Thread(mut);
Jnjvm* vm = th->getJVM();
- uint32 length = th->getFrameContextLength();
+ uint32 length = mut->getFrameContextLength();
mvm::ThreadAllocator allocator;
uintptr_t* buffer = (uintptr_t*)allocator.Allocate(length * sizeof(uintptr_t));
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=120020&r1=120019&r2=120020&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc (original)
+++ vmkit/branches/multi-vm/lib/J3/Classpath/ClasspathVMThrowable.inc Tue Nov 23 07:13:30 2010
@@ -33,10 +33,12 @@
llvm_gcroot(vmThrowable, 0);
llvm_gcroot(result, 0);
- JavaThread* th = JavaThread::get();
+ mvm::Thread* mut = mvm::Thread::get();
+ uint32 length = mut->getFrameContextLength();
+
+ JavaThread* th = JavaThread::j3Thread(mut);
Jnjvm* vm = th->getJVM();
- uint32 length = th->getFrameContextLength();
if (sizeof(void*) == 4) {
ClassArray* cl = vm->upcalls->ArrayOfInt;
@@ -47,7 +49,7 @@
}
// Don't call th->getFrameContext because it is not GC-safe.
- mvm::StackWalker Walker(th);
+ mvm::StackWalker Walker(mut);
uint32_t i = 0;
while (void* ip = *Walker) {
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=120020&r1=120019&r2=120020&view=diff
==============================================================================
--- vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp (original)
+++ vmkit/branches/multi-vm/lib/J3/VMCore/JnjvmClassLoader.cpp Tue Nov 23 07:13:30 2010
@@ -693,7 +693,7 @@
assert(success && "Could not add class in map");
} CATCH {
excp = JavaThread::get()->pendingException;
- JavaThread::get()->clearException();
+ mvm::Thread::get()->clearException();
} END_CATCH;
}
if (excp != NULL) {
More information about the vmkit-commits
mailing list