-
Enhancement
-
Resolution: Fixed
-
P3
-
8u60, 9
-
b64
-
Not verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8084850 | emb-9 | Vladimir Ivanov | P3 | Resolved | Fixed | team |
JDK-8086921 | 8u65 | Vladimir Ivanov | P3 | Resolved | Fixed | b01 |
JDK-8078291 | 8u60 | Vladimir Ivanov | P3 | Resolved | Fixed | b18 |
JDK-8138181 | emb-8u65 | Unassigned | P3 | Resolved | Fixed | b01 |
JDK-8086201 | emb-8u60 | Vladimir Ivanov | P3 | Resolved | Fixed | team |
Customize adapted MethodHandle in MH.invoke() case.
Right now, generic invoker LambdaForm looks like:
invoke_002_MT=Lambda(a0:L,a1:L,a2:L)=>{
t3:L=Invokers.checkGenericType(a0:L,a2:L);
t4:V=Invokers.checkCustomized(a0:L);
t5:L=MethodHandle.invokeBasic(t3:L,a1:L);t5:L}
}
Customize a0, but invoke t3. a0 != t3 when asType conversion happens.
Should be:
Generic invoker LambdaForm should be:
invoke_002_MT=Lambda(a0:L,a1:L,a2:L)=>{
t3:L=Invokers.checkGenericType(a0:L,a2:L);
t4:V=Invokers.checkCustomized(t3:L);
t5:L=MethodHandle.invokeBasic(t3:L,a1:L);t5:L}
}
Right now, generic invoker LambdaForm looks like:
invoke_002_MT=Lambda(a0:L,a1:L,a2:L)=>{
t3:L=Invokers.checkGenericType(a0:L,a2:L);
t4:V=Invokers.checkCustomized(a0:L);
t5:L=MethodHandle.invokeBasic(t3:L,a1:L);t5:L}
}
Customize a0, but invoke t3. a0 != t3 when asType conversion happens.
Should be:
Generic invoker LambdaForm should be:
invoke_002_MT=Lambda(a0:L,a1:L,a2:L)=>{
t3:L=Invokers.checkGenericType(a0:L,a2:L);
t4:V=Invokers.checkCustomized(t3:L);
t5:L=MethodHandle.invokeBasic(t3:L,a1:L);t5:L}
}
- backported by
-
JDK-8078291 Customize adapted MethodHandle in MH.invoke() case
-
- Resolved
-
-
JDK-8084850 Customize adapted MethodHandle in MH.invoke() case
-
- Resolved
-
-
JDK-8086201 Customize adapted MethodHandle in MH.invoke() case
-
- Resolved
-
-
JDK-8086921 Customize adapted MethodHandle in MH.invoke() case
-
- Resolved
-
-
JDK-8138181 Customize adapted MethodHandle in MH.invoke() case
-
- Resolved
-