RFR: 8321033: Avoid casting Array to GrowableArray
Kim Barrett
kbarrett at openjdk.org
Wed Jun 5 03:38:56 UTC 2024
On Tue, 4 Jun 2024 20:49:16 GMT, Matias Saavedra Silva <matsaave at openjdk.org> wrote:
> `ModuleEntry::_reads` is declared as an GrowableArray<ModuleEntry*>*, but when stored in a CDS archive, it's assigned to an Array<ModuleEntry*>*. To ensure better type safety, `ModuleEntry::_reads` is changed to a generic pointer which uses two different getters and setters as well as two booleans to ensure the value is interpreted correctly. This was chosen to avoid introducing a new field to the ModuleEntry class, as another pointer and further alignment would increase the size of the ModuleEntry array. Verified with tier1-5 tests.
Changes requested by kbarrett (Reviewer).
src/hotspot/share/classfile/moduleEntry.hpp line 71:
> 69: Symbol* _name; // name of this module
> 70: ClassLoaderData* _loader_data;
> 71: void* _reads; // list of modules that are readable by this module
Use a union rather than a void* plus casts.
-------------
PR Review: https://git.openjdk.org/jdk/pull/19549#pullrequestreview-2097958086
PR Review Comment: https://git.openjdk.org/jdk/pull/19549#discussion_r1626873872
More information about the hotspot-runtime-dev
mailing list