review request (L): 6984311 JSR 292 needs optional bootstrap method parameters
John Rose
john.r.rose at oracle.com
Sat Oct 30 12:08:52 PDT 2010
On Oct 29, 2010, at 4:09 AM, Christian Thalinger wrote:
> On Oct 28, 2010, at 8:40 PM, John Rose wrote:
>> 6984311: JSR 292 needs optional bootstrap method parameters
>>
>> http://cr.openjdk.java.net/~jrose/6984311/webrev.02/
>
> src/share/vm/oops/constantPoolOop.cpp:
> 576 // Benign race condition: f1 may already be filled in while we were trying to lock.
> I guess we don't care here because the exception to be thrown is expected to be the same for different threads, right?
Yes. I added more comments:
+ // Benign race condition: f1 may already be filled in while we were trying to lock.
++ // The important thing here is that all threads pick up the same result.
++ // It doesn't matter which racing thread wins, as long as only one
++ // result is used by all threads, and all future queries.
++ // That result may be either a resolved constant or a failure exception.
This matches what is in the javadoc (for the java.dyn package-info):
* Every use of this constant pool entry must lead to the same outcome.
* If the resolution of the names in the method handle constant causes an exception to occur,
* this exception must be recorded by the JVM, and re-thrown on every subsequent attempt
* to use this particular constant.
> 1613 Bytes::put_Java_u2((address) (bytes+5), argc);
> 1614 for (int arg_i = 0; arg_i < argc; arg_i++) {
> 1615 int arg = invoke_dynamic_argument_index_at(idx, arg_i);
> 1616 Bytes::put_Java_u2((address) (bytes+5+2*arg_i), arg);
> 1617 }
> Isn't argc here overwritten with the first arg?
Right! Changed 5 to 7 on line 1616. Thanks for spotting that.
> src/share/vm/utilities/constantTag.cpp:
>
> Only the copyright year is changed.
Fixed.
> Otherwise looks good.
Thanks. I am updating the webrev:
http://cr.openjdk.java.net/~jrose/6984311/webrev.03/
-- John
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://mail.openjdk.java.net/pipermail/mlvm-dev/attachments/20101030/d7457f73/attachment.html
More information about the mlvm-dev
mailing list