[vmkit-commits] [vmkit] r198499 - Eagerly resolve methods in methodAt
Gael Thomas
gael.thomas at lip6.fr
Sat Jan 4 07:39:28 PST 2014
Author: gthomas
Date: Sat Jan 4 09:39:28 2014
New Revision: 198499
URL: http://llvm.org/viewvc/llvm-project?rev=198499&view=rev
Log:
Eagerly resolve methods in methodAt
Modified:
vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc
vmkit/branches/mcjit/lib/j3/vm/j3.cc
vmkit/branches/mcjit/lib/j3/vm/j3class.cc
Modified: vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc?rev=198499&r1=198498&r2=198499&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc (original)
+++ vmkit/branches/mcjit/lib/j3/openjdk/j3lib.cc Sat Jan 4 09:39:28 2014
@@ -27,25 +27,15 @@ void J3Lib::bootstrap(J3* vm) {
#define z_signature(id) vm->initialClassLoader->getSignature(0, vm->names()->get(id))
J3Class* threadGroupClass = vm->initialClassLoader->loadClass(vm->names()->get("java/lang/ThreadGroup"));
- J3Method* sysThreadGroupInit = vm->initialClassLoader->method(0,
- threadGroupClass,
- vm->initName,
- z_signature("()V"));
+ J3Method* sysThreadGroupInit = threadGroupClass->findMethod(0, vm->initName, z_signature("()V"));
J3ObjectHandle* sysThreadGroup = J3ObjectHandle::doNewObject(threadGroupClass);
sysThreadGroupInit->invokeSpecial(sysThreadGroup);
-
- J3Method* appThreadGroupInit = vm->initialClassLoader->method(0,
- threadGroupClass,
- vm->initName,
- z_signature("(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"));
+ J3Method* appThreadGroupInit = threadGroupClass->findMethod(0, vm->initName, z_signature("(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"));
J3ObjectHandle* appThreadGroup = J3ObjectHandle::doNewObject(threadGroupClass);
appThreadGroupInit->invokeSpecial(appThreadGroup, sysThreadGroup, vm->utfToString("main"));
- J3Method* threadInit = vm->initialClassLoader->method(0,
- vm->threadClass,
- vm->initName,
- z_signature("(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"));
+ J3Method* threadInit = vm->threadClass->findMethod(0, vm->initName, z_signature("(Ljava/lang/ThreadGroup;Ljava/lang/String;)V"));
J3ObjectHandle* mainThread = J3ObjectHandle::doNewObject(vm->threadClass);
J3Thread::get()->assocJavaThread(mainThread);
@@ -53,10 +43,10 @@ void J3Lib::bootstrap(J3* vm) {
threadInit->invokeSpecial(mainThread, appThreadGroup, vm->utfToString("main"));
- vm->initialClassLoader->method(J3Cst::ACC_STATIC,
- vm->initialClassLoader->loadClass(vm->names()->get("java/lang/System")),
- vm->names()->get("initializeSystemClass"),
- z_signature("()V"))->invokeStatic();
+ vm->initialClassLoader
+ ->loadClass(vm->names()->get("java/lang/System"))
+ ->findMethod(J3Cst::ACC_STATIC, vm->names()->get("initializeSystemClass"), z_signature("()V"))
+ ->invokeStatic();
J3Thread::get()->restore(prev);
}
Modified: vmkit/branches/mcjit/lib/j3/vm/j3.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3.cc?rev=198499&r1=198498&r2=198499&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3.cc Sat Jan 4 09:39:28 2014
@@ -99,7 +99,7 @@ void J3::run() {
clinitSign = initialClassLoader->getSignature(0, clinitSignName);
#define z_class(clName) initialClassLoader->loadClass(names()->get(clName))
-#define z_method(access, cl, name, signature) initialClassLoader->method(access, cl, name, initialClassLoader->getSignature(cl, signature))
+#define z_method(access, cl, name, signature) cl->findMethod(access, name, initialClassLoader->getSignature(cl, signature))
#define z_field(access, cl, name, type) cl->findField(access, names()->get(name), type)
Modified: vmkit/branches/mcjit/lib/j3/vm/j3class.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3class.cc?rev=198499&r1=198498&r2=198499&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3class.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3class.cc Sat Jan 4 09:39:28 2014
@@ -712,7 +712,7 @@ J3Method* J3Class::interfaceOrMethodAt(u
if(!signature)
ctpResolved[idx] = signature = loader()->getSignature(this, nameAt(ctpValues[ntIdx] & 0xffff));
- res = loader()->method(access, cl, name, signature);
+ res = cl->findMethod(access, name, signature);
ctpResolved[idx] = res;
More information about the vmkit-commits
mailing list