RFR: 8259214: MetaspaceClosure support for Arrays of MetaspaceObj [v4]
Frederic Parain
fparain at openjdk.java.net
Wed Jan 20 21:11:50 UTC 2021
On Tue, 19 Jan 2021 20:13:10 GMT, Ioi Lam <iklam at openjdk.org> wrote:
>> Currently, `MetaspaceClosure::push` supports only the following variants:
>>
>> MetaspaceClosure* it = ...;
>> Klass* o = ...; it->push(&o);
>> Array<int>* a1 = ...; it->push(&a1);
>> Array<Annotation*>* a2 = ...; it->push(&a2);
>>
>> In Valhalla, support is needed for the following variant (Annotation is a subtype of MetaspaceObj):
>>
>> Array<Annotation>* a3 = ...; it->push(&a3);
>>
>> This change will allow CDS to make a copy of this array, as well as relocating all the pointers embedded in the elements of this array. See a test case in test_metaspaceClosure.cpp.
>>
>> I also cleaned up the code (with help from @kimbarrett) to use SFINAE to dispatch from `MetaspaceClosure::push` to the different subtypes of `MetaspaceClosure::Ref`.
>
> Ioi Lam has updated the pull request incrementally with one additional commit since the last revision:
>
> Remove RefMatcher and go back to overloaded template functions for push(...)
Looks good to me.
Thank you for adding this feature.
Fred
-------------
Marked as reviewed by fparain (Committer).
PR: https://git.openjdk.java.net/jdk/pull/1995
More information about the hotspot-dev
mailing list