RFR 8245289: Clean up offset code in JavaClasses
David Holmes
david.holmes at oracle.com
Mon Jun 1 05:51:25 UTC 2020
Hi Coleen,
On 28/05/2020 10:48 pm, coleen.phillimore at oracle.com wrote:
> Summary: Make offset member names consistent and private, move static
> initializations near owning classes
>
> This one is better. I gave up on the X macros because they didn't save
> typing. The changes here were to add underscores to offset field names,
> remove _in_bytes for offset accessors and add asserts that the offset is
> non-zero, made java_lang_ref_Reference offset fields private, and moved
> static member definitions closer to the class instead of some random
> place in javaClasses.cpp.
I focused on the javaClasses.* changes rather than the incidental
changes due to the _in_bytes removal.
src/hotspot/share/classfile/javaClasses.hpp
892 static void serialize_offsets(SerializeClosure* f) NOT_CDS_RETURN;
You dropped the NOT_CDS_RETURN in the new code.
---
src/hotspot/share/classfile/javaClasses.inline.hpp
I'm confused about the removal of the initialization assertions. I would
have expected this, for example,
33 void java_lang_String::set_coder(oop string, jbyte coder) {
34 string->byte_field_put(_coder_offset, coder);
to be expressed using coder_offset():
33 void java_lang_String::set_coder(oop string, jbyte coder) {
34 string->byte_field_put(coder_offset(), coder);
so that we still get an initialization check. Though I see that
initialization checks are an area where there remains a lot of
inconsistency - it's not clear when we can rely solely on the "_x_offset
!= 0" check versus the "_initialized==true" check, and there are many
methods with no initialization check at all.
Thanks,
David
-----
> See discussion for 8243996 Remove hardcoded field offsets for more
> details.
> https://mail.openjdk.java.net/pipermail/hotspot-dev/2020-May/041732.html
>
> Tested with tier1-6.
>
> open webrev at http://cr.openjdk.java.net/~coleenp/2020/8245289.01/webrev
> bug link https://bugs.openjdk.java.net/browse/JDK-8245289
>
> Thanks,
> Coleen
More information about the hotspot-dev
mailing list