RFR(XL) 8198698: Support Lambda proxy classes in dynamic CDS archive

Mandy Chung mandy.chung at oracle.com
Wed Jun 3 20:43:00 UTC 2020


Hi David,

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 
membership.

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.

Mandy


More information about the hotspot-runtime-dev mailing list