RFR: JDK-8282798 java.lang.runtime.Carrier [v5]
Maurizio Cimadamore
mcimadamore at openjdk.java.net
Fri Mar 11 15:56:47 UTC 2022
On Fri, 11 Mar 2022 15:17:30 GMT, Jim Laskey <jlaskey at openjdk.org> wrote:
>> We propose to provide a runtime anonymous carrier class object generator; java.lang.runtime.Carrier. This generator class is designed to share anonymous classes when shapes are similar. For example, if several clients require objects containing two integer fields, then Carrier will ensure that each client generates carrier objects using the same underlying anonymous class.
>>
>> See JBS for details.
>
> Jim Laskey has updated the pull request incrementally with two additional commits since the last revision:
>
> - Use long array for primitives
> - Use long arrays for primitives
Marked as reviewed by mcimadamore (Reviewer).
src/java.base/share/classes/java/lang/runtime/Carrier.java line 51:
> 49: * while avoiding primitive boxing associated with collection objects. Component values
> 50: * can be primitive or Object. Clients can create new carrier instances by describing a
> 51: * carrier <em>shape</em>, that is, a MethodType whose parameter types describe the
Suggestion:
* carrier <em>shape</em>, that is, a {@linkplain MethodType method type} whose parameter types describe the
src/java.base/share/classes/java/lang/runtime/Carrier.java line 380:
> 378: }
> 379:
> 380: return Unsafe.ARRAY_LONG_BASE_OFFSET +
Shouldn't you add the offset of the first `int` value in the array to the resulting expression? E.g. I'm assuming we're storing `long`s first and `int`s after? If so, `int` values will be located at an offset from the start of the array.
-------------
PR: https://git.openjdk.java.net/jdk/pull/7744
More information about the core-libs-dev
mailing list