On Mon, 6 Feb 2023 13:55:59 GMT, Adam Sotona <asot...@openjdk.org> wrote:

>> src/java.base/share/classes/jdk/internal/classfile/AttributedElement.java 
>> line 94:
>> 
>>> 92:      * are permitted.
>>> 93:      */
>>> 94:     enum Kind {
>> 
>> Not sure how to interpret this. This seems to refer to an attribute - e.g. 
>> where is an attribute allowed - rather than to the element (e.g. the 
>> declaration to which the attribute is attached). All the constants are 
>> unused, so hard to make sense of how this is used.
>
> There are at least 72 usages of AttributedElement.Kind across the Classfile 
> API.
> Do you suggest to rename it to something else (for example Location)?

Uhm - I can't see these usages... something seems to be off with my IDE 
configuration. I did a grep and I now saw the uses. That said, having the 
Kind/Location inside AttributedElement still looks weird to me. The "places 
where an attribute can appear" is a property of an `Attribute`, not of an 
attributed element (which is used to model elements which can have attributes).

>> src/java.base/share/classes/jdk/internal/classfile/Attributes.java line 774:
>> 
>>> 772:      */
>>> 773:     public static AttributeMapper<?> standardAttribute(Utf8Entry name) 
>>> {
>>> 774:         int hash = name.hashCode();
>> 
>> If we have a map, why do we need this "inlined" map here? Performance 
>> reasons?
>
> Yes, performance is the main reason.
> I'll note to do a fresh differential performance benchmarks with a HashMap.

thanks

-------------

PR: https://git.openjdk.org/jdk/pull/10982

Reply via email to