RFR: 8275731: CDS archived enums objects are recreated at runtime [v3]

Ioi Lam iklam at openjdk.java.net
Wed Feb 16 17:49:11 UTC 2022


On Wed, 19 Jan 2022 05:50:50 GMT, Ioi Lam <iklam at openjdk.org> wrote:

>> I don't really know this code well enough to do a good code review.  I had some comments though.
>
>> I don't really know this code well enough to do a good code review. I had some comments though.
> 
> Hi Coleen, thanks for taking a look.
> 
> This PR has two major parts:
> 
> 1. Check for inappropriate reference to static fields. This is mainly done in cdsHeapVerifier.cpp. These checks don't affect the contents of the CDS archive. They just print out warnings if problems are found.
> 2. Special initialization of enum classes. Essentially if any instance of an enum class `X` is archived, then `X::<clinit>` will not be executed, and we'll take this path instead (in instanceKlass.cpp):
> 
> 
>   // This is needed to ensure the consistency of the archived heap objects.
>   if (has_archived_enum_objs()) {
>     assert(is_shared(), "must be");
>     bool initialized = HeapShared::initialize_enum_klass(this, CHECK);
>     if (initialized) {
>       return;
>     }
>   }
> 
> Could you check if (2) is correct?

> @iklam This pull request has been inactive for more than 4 weeks and will be automatically closed if another 4 weeks passes without any activity. To avoid this, simply add a new comment to the pull request. Feel free to ask for assistance if you need help with progressing this pull request towards integration!

keepalive

-------------

PR: https://git.openjdk.java.net/jdk/pull/6653


More information about the core-libs-dev mailing list