Hi Yumin,
I'm one of the developers of ASM,
I've pushed a new versions of ASM (the future 5.1) in the trunk that should let 
you create constant method handles on an interface,
when i have updated ASM for Java 8, i've overlooked that case, sorry for that.

The code is mostly similar to your patch but it does the full roundtrip, being 
able not only to encode constant method handles on interface but also to decode 
them.
  
Kumar is in CC, i believe, he is the one that sync the private copy of ASM used 
by the JDK with the SVN trunk.

regards,
Rémi

----- Mail original -----
> De: "Yumin Qi" <yumin...@oracle.com>
> À: core-libs-dev@openjdk.java.net, "CHRIS.HEGARTY" 
> <chris.hega...@oracle.com>, "harold seigel"
> <harold.sei...@oracle.com>, "Lois Foltan" <lois.fol...@oracle.com>, "Vladimir 
> Ivanov" <vladimir.x.iva...@oracle.com>
> Envoyé: Vendredi 22 Janvier 2016 21:22:06
> Objet: RFR: 8147755: ASM should create correct constant tag for invokestatic  
> on handle point to interface static
> method
> 
> Hi, All
> 
>     Can I have a review for
>     bug: https://bugs.openjdk.java.net/browse/JDK-8147755
>     Webrev:  http://cr.openjdk.java.net/~minqi/8147755/webrev-01/
> 
>      Summary: When fix bug 8145148 to follow:
> 
> JVMS-5.4.3.3 Method Resolution:
>   " If C is an interface, method resolution throws an
> IncompatibleClassChangeError."
> JVMS-5.4.3.4 Interface Method Resolution:
>   "If C is not an interface, interface method resolution throws an
> IncompatibleClassChangeError"
> 
>        In defmeth(default method) tests, a MethodHandle pointing to
> interface static method will violate  the spec. Since such a handle in
> asm will generate a tag of Methodref in constantpool for the call site,
> with the fix of 8145148, it requires a tag of InterfaceMethodref.
> 
>         Fix by create a new constructor of Handle with extra boolean to
> indicate if the handle points to interface static method.
> 
>          Tests:  A test case and resulted constantpool data attached.
> The fix will not affect existing code.
>                      Also tested with fixed 8145148 and revised defmeth
> with the new version Handle and passed.
> 
> Thanks
> Yumin
> 
> 
> 

Reply via email to