diff src/main/gov/nasa/jpf/jvm/bytecode/INVOKEDYNAMIC.java @ 29:820b89dd6c97

Fixed a bug in the implementation for lambda support. Now, every invocation of invokedynamic that is associated with a lamabda expression including free variables leads to a new instance of a function object.
author nastaran <nastaran.shafiei@gmail.com>
date Fri, 16 Oct 2015 15:55:08 -0700
parents 7be90179bb3b
children
line wrap: on
line diff
--- a/src/main/gov/nasa/jpf/jvm/bytecode/INVOKEDYNAMIC.java	Thu Jun 25 13:20:50 2015 -0700
+++ b/src/main/gov/nasa/jpf/jvm/bytecode/INVOKEDYNAMIC.java	Fri Oct 16 15:55:08 2015 -0700
@@ -95,7 +95,7 @@
     
     ElementInfo ei = ti.getHeap().get(funcObjRef);
     
-    if(ei==null || ei!=lastFuncObj) {
+    if(ei==null || ei!=lastFuncObj || freeVariableTypes.length>0) {
       ClassInfo fiClassInfo;
 
       // First, resolve the functional interface