RFR 8151706: Update VarHandle implementation to use @Stable arrays

Paul Sandoz paul.sandoz at oracle.com
Fri Apr 8 09:56:05 UTC 2016


Please review:

  http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8151706-VH-form-table-stable/webrev/ <http://cr.openjdk.java.net/~psandoz/jdk9/JDK-8151706-VH-form-table-stable/webrev/>

Now that @Stable arrays are supported by C1 (thanks Vladimir!) we can switch from the explicit use of MemberName fields in VarForm to a @Stable MemberName[] array.

I also took the opportunity to simplify the linking from a VarHandle impl to MemberName[] array, now that the implementation has settled down. This will reduce initialization costs and memory churn.

I held off making further improvements for now. For example, VarForm can probably go away (also removing the dependency on ClassValue). A VarHandle instance can directly hold a MemberName[] array whose source reference is statically held on the associated VarHandle implementation. It should also be possible to lazily create MemberName instances as required, rather than aggressively doing so, which may further reduce initialization costs and memory usage in common cases.


More information about the core-libs-dev mailing list