RFR(XL) 8198698: Support Lambda proxy classes in dynamic CDS archive
mandy.chung at oracle.com
Wed Jun 3 20:43:00 UTC 2020
On 6/2/20 10:30 PM, David Holmes wrote:
>> 1685 InstanceKlass* n_h = caller_ik->nest_host(THREAD);
>> 1686 assert(n_h->has_nest_member(caller_ik, THREAD) ||
>> 1687 n_h == caller_ik, "mismatched nest host");
>> I think you meant to check n_h->has_nest_member(loaded_lambda, THREAD).
> That can't be right. has_nest_member is for checking static nest
> membership. Dynamic proxies are not static nest members!
Thanks for pointing out that has_nest_member only checks for static nest
My comment is specific to ensure that the runtime nest host of caller_ik
== the nest host of loaded_lambda. I think Calvin's updated patch adds
the proper check to compare the nest host and not using has_nest_member
(assert nest_host == shared_nest_host)
The assert "n_h->has_nest_member(caller_ik, THREAD) || nest_host ==
caller_ik" is not needed. This assert is not correct either since
caller class can be a hidden class.
More information about the hotspot-runtime-dev