optional arguments for bootstrap methods

John Rose john.r.rose at Oracle.COM
Fri Oct 22 04:14:06 PDT 2010


On Oct 22, 2010, at 4:03 AM, Helmut Eller wrote:

> Why is the name a required and not an optional argument?

The name is part of the fixed structure of CONSTANT_InvokeDynamic, which is modeled on CONSTANT_Methodref, and therefore contains a CONSTANT_NameAndType.  Whether you want the name or not, it's in there.

Minimally, an indy instruction could get by with a signature, a BSM, and 0 or more static arguments.  Adding the name makes the new CP entry a little more similar to existing ones.

If you put the name string in the argv, you'd need a CONSTANT_Utf8 and a CONSTANT_String. In the current design, you instead have a CONSTANT_NameAndType and a CONSTANT_Utf8.  So the CP entry pressure is the same in most cases.

-- John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20101022/bf943afa/attachment.html 


More information about the mlvm-dev mailing list