[vmkit-commits] [vmkit] r198320 - Only add Java parameters in javaMethod()
Gael Thomas
gael.thomas at lip6.fr
Thu Jan 2 09:14:03 PST 2014
Author: gthomas
Date: Thu Jan 2 11:14:03 2014
New Revision: 198320
URL: http://llvm.org/viewvc/llvm-project?rev=198320&view=rev
Log:
Only add Java parameters in javaMethod()
Modified:
vmkit/branches/mcjit/lib/j3/vm/j3method.cc
vmkit/branches/mcjit/lib/j3/vm/j3options.cc
Modified: vmkit/branches/mcjit/lib/j3/vm/j3method.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3method.cc?rev=198320&r1=198319&r2=198320&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3method.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3method.cc Thu Jan 2 11:14:03 2014
@@ -227,24 +227,23 @@ J3Value J3Method::invokeVirtual(J3Object
J3MethodType* J3Method::methodType(J3ObjectType* from) {
if(!_methodType) {
- const vmkit::Name* sign = J3Method::sign();
J3ClassLoader* loader = cl()->loader();
- J3Type* args[1+sign->length()];
+ J3Type* args[1+sign()->length()];
uint32_t nbArgs = 0;
uint32_t cur = 1;
- if(sign->cStr()[0] != J3Cst::ID_Left)
- loader->wrongType(from, sign);
+ if(sign()->cStr()[0] != J3Cst::ID_Left)
+ loader->wrongType(from, sign());
if(!J3Cst::isStatic(access()))
args[nbArgs++] = cl();
- while(sign->cStr()[cur] != J3Cst::ID_Right) {
- args[nbArgs++] = loader->getTypeInternal(from, sign, cur, &cur);
+ while(sign()->cStr()[cur] != J3Cst::ID_Right) {
+ args[nbArgs++] = loader->getTypeInternal(from, sign(), cur, &cur);
}
- args[nbArgs++] = loader->getTypeInternal(from, sign, cur+1, &cur);
- if(cur != sign->length())
- loader->wrongType(from, sign);
+ args[nbArgs++] = loader->getTypeInternal(from, sign(), cur+1, &cur);
+ if(cur != sign()->length())
+ loader->wrongType(from, sign());
_methodType = new(loader->allocator(), nbArgs - 1) J3MethodType(args, nbArgs);
}
@@ -304,10 +303,19 @@ J3ObjectHandle* J3Method::javaMethod() {
if(!_javaMethod) {
J3ObjectHandle* prev = J3Thread::get()->tell();
J3* vm = cl()->loader()->vm();
- J3ObjectHandle* parameters = J3ObjectHandle::doNewArray(vm->classClass->getArray(), methodType()->nbIns());
- for(uint32_t i=0; i<methodType()->nbIns(); i++)
- parameters->setObjectAt(i, methodType()->ins(i)->javaClass());
+ uint32_t nbIns = methodType()->nbIns();
+ uint32_t d = 0;
+
+ if(!J3Cst::isStatic(access())) {
+ nbIns--;
+ d = 1;
+ }
+
+ J3ObjectHandle* parameters = J3ObjectHandle::doNewArray(vm->classClass->getArray(), nbIns);
+
+ for(uint32_t i=0; i<nbIns; i++)
+ parameters->setObjectAt(i, methodType()->ins(i+d)->javaClass());
J3Attribute* exceptionAttribute = attributes()->lookup(vm->exceptionsAttribute);
J3ObjectHandle* exceptions;
Modified: vmkit/branches/mcjit/lib/j3/vm/j3options.cc
URL: http://llvm.org/viewvc/llvm-project/vmkit/branches/mcjit/lib/j3/vm/j3options.cc?rev=198320&r1=198319&r2=198320&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3options.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3options.cc Thu Jan 2 11:14:03 2014
@@ -15,7 +15,7 @@ J3Options::J3Options() {
debugEnterIndent = 1;
- debugExecute = 1;
+ debugExecute = 0;
debugLoad = 0;
debugResolve = 0;
debugIniting = 0;
More information about the vmkit-commits
mailing list