[vmkit-commits] [vmkit] r198064 - fix the bug in invokeVirtual

Gael Thomas gael.thomas at lip6.fr
Thu Dec 26 15:47:07 PST 2013


Author: gthomas
Date: Thu Dec 26 17:47:07 2013
New Revision: 198064

URL: http://llvm.org/viewvc/llvm-project?rev=198064&view=rev
Log:
fix the bug in invokeVirtual

Modified:
    vmkit/branches/mcjit/lib/j3/vm/j3method.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=198064&r1=198063&r2=198064&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3method.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3method.cc Thu Dec 26 17:47:07 2013
@@ -115,7 +115,7 @@ J3Method* J3Method::resolve(J3ObjectHand
 	if(cl()->loader()->vm()->options()->debugLinking)
 		fprintf(stderr, "virtual linking %ls::%ls\n", cl()->name()->cStr(), name()->cStr());
 	vmkit::Names* n = cl()->loader()->vm()->names();
-	return cl()->findVirtualMethod(name(), sign());
+	return obj->vt()->type()->asObjectType()->findVirtualMethod(name(), sign());
 }
 
 
@@ -157,7 +157,7 @@ J3Value J3Method::internalInvoke(bool st
 		target = this;
 	else {
 		/* can not use trampoline here */
-		J3ObjectHandle* self = (J3ObjectHandle*)args[0].PointerVal;
+		J3ObjectHandle* self = handle ? handle : inArgs[0].valObject;
 		target = resolve(self);
 	}
 





More information about the vmkit-commits mailing list