----- Mail original -----
> De: "Alan Bateman" <alan.bate...@oracle.com>
> À: "David Holmes" <david.hol...@oracle.com>, "core-libs-dev"
> Envoyé: Mardi 15 Mai 2018 15:53:44
> Objet: Re: [core-libs] RFR (L): 8010319: Implementation of JEP 181:
> Nest-Based Access Control
> On 15/05/2018 01:52, David Holmes wrote:
>> This review is being spread across four groups: langtools, core-libs,
>> hotspot and serviceability. This is the specific review thread for
>> core-libs - webrev:
> Maybe a question for Kumar but are we planning to pull in any ASM
> updates for JDK 11? NestMembers extends Attribute looks okay, I'm less
> sure about the change to ClassReader as I don't know if there is
> somewhere else in ASM that has the list of attributes to always parse.
With my ASM hat,
the current master of ASM (the release of ASM 6.2 is scheduled for the next
week-end) already supports nestmates (and constant dynamic and preview feature)
so i suppose that at some point in the future Kumar will merge it to the JDK.
We have recently changed the way we implement features in ASM, instead of
having features lingering in different branches, we now integrate them directly
in the master under an experimental flag (ASM7_EXPERIMENTAL), which means for
the JDK that it is no longer necessary to wait until the release of ASM 7
because it can use the experimental support of ASM 6.2.
(note that experimental doesn't mean full of bugs, or half baked or anything
like this, it means that the feature is not yet integrated in a released JDK).
I've taking a look to the code in this patch, i've two comments,
- in Attributes, it seems that the code store the bytecode slice corresponding
to the attribute only to use its length as argument of the ByteVector which is
like an ArrayList of byte, it grows automatically so the initial capacity is a
perf optimization. Perhaps the byte array is used somewhere else ?
- patching the ClassReader.accept is really a quick hack because the method
accept with 3 arguments is not patched so if this method is called somewhere in
the JDK it will behave as it should.