[vmkit-commits] [vmkit] r198494 - preserve method signatures in nameAndType entries.

Gael Thomas gael.thomas at lip6.fr
Sat Jan 4 06:43:10 PST 2014


Author: gthomas
Date: Sat Jan  4 08:43:10 2014
New Revision: 198494

URL: http://llvm.org/viewvc/llvm-project?rev=198494&view=rev
Log:
preserve method signatures in nameAndType entries.

Modified:
    vmkit/branches/mcjit/lib/j3/vm/j3class.cc

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=198494&r1=198493&r2=198494&view=diff
==============================================================================
--- vmkit/branches/mcjit/lib/j3/vm/j3class.cc (original)
+++ vmkit/branches/mcjit/lib/j3/vm/j3class.cc Sat Jan  4 08:43:10 2014
@@ -744,10 +744,15 @@ J3Method* J3Class::interfaceOrMethodAt(u
 	J3ObjectType* cl = classAt(ctpValues[idx] >> 16);
 
 	check(ntIdx, J3Cst::CONSTANT_NameAndType);
+
 	const vmkit::Name* name = nameAt(ctpValues[ntIdx] >> 16);
-	const vmkit::Name* signature = nameAt(ctpValues[ntIdx] & 0xffff);
+	J3Signature* signature = (J3Signature*)ctpResolved[ntIdx];
+	if(!signature)
+		ctpResolved[idx] = signature = loader()->getSignature(this, nameAt(ctpValues[ntIdx] & 0xffff));
+
+	res = loader()->method(access, cl, name, signature);
 
-	res = loader()->method(access, cl, name, loader()->getSignature(this, signature));
+	ctpResolved[idx] = res;
 
 	return res;
 }





More information about the vmkit-commits mailing list