RFR: 8321033: Avoid casting Array to GrowableArray [v3]
Calvin Cheung
ccheung at openjdk.org
Thu Jun 13 21:48:15 UTC 2024
On Thu, 13 Jun 2024 21:31:28 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.
>
> Matias Saavedra Silva has updated the pull request incrementally with one additional commit since the last revision:
>
> Ioi comments
Spotted one thing in moduleEntry.cpp.
src/hotspot/share/classfile/moduleEntry.cpp line 212:
> 210: bool ModuleEntry::has_reads_list() const {
> 211: assert_locked_or_safepoint(Module_lock);
> 212: return ((_reads != nullptr) && !reads()->is_empty());
Could the first condition be `reads() != nullptr` ?
-------------
PR Review: https://git.openjdk.org/jdk/pull/19549#pullrequestreview-2117085306
PR Review Comment: https://git.openjdk.org/jdk/pull/19549#discussion_r1638983259
More information about the hotspot-runtime-dev
mailing list