RFR: 8220607 Draft JEP: Hidden Classes
mandy.chung at oracle.com
Fri Dec 6 23:32:14 UTC 2019
On 12/6/19 2:51 PM, Brian Goetz wrote:
>> Another asymmetry between Lookup::defineClass and defineHiddenClass
>> is the return value, Class vs Lookup.
>> It's trivial to get the class from a Lookup object but we can't go
>> the other way. If a framework wants to get Lookup from a hidden class
>> it just defines (e.g. get a MethodHandle and invoke), if dHC returned
>> a Class, the hidden class had to provide an entry point to return its
>> Lookup object. Such entry point has to be accessible to the
>> framework but it has to be cautious in leaking its full-power Lookup.
> For the reasons you give, this asymmetry doesn't bother me. Most
> users of dC will want the class; users of dHC will generally _need_
> the lookup.
>> I have considered adding Lookup::defineClassAsLookup(byte bytes,
>> boolean initialize). Lookup::defineClass was added in JDK 9. I
>> haven't seen any request to initialize the class. So I think it can
>> be done as a separate enhancement. I will file a JBS issue.
> I agree that this should be a separate enhancement. I'd like to see
> this bit of unsafe removed too, but no need to hold up this train to
> get to that one.
More information about the valhalla-dev