RFR: 8294982: Implementation of Classfile API [v20]

Adam Sotona asotona at openjdk.org
Mon Mar 6 14:40:16 UTC 2023


On Wed, 1 Mar 2023 10:05:27 GMT, Adam Sotona <asotona at openjdk.org> wrote:

>> src/java.base/share/classes/jdk/internal/classfile/impl/ChainedFieldBuilder.java line 48:
>> 
>>> 46:         this.consumer = consumer;
>>> 47:         FieldBuilder b = downstream;
>>> 48:         while (b instanceof ChainedFieldBuilder cb)
>> 
>> I'm probably missing something - but if `b` is another chained builder, instead of using a loop, can't we just skip to its  `terminal` field? Also, the `downstream` field seems unused. (same considerations apply for `ChainedMethodBuilder` and `ChainedClassBuilder`).
>> 
>> I note that `NonTerminalCodeBuilder` seems to be already doing what I suggest here (e.g. skip to `terminal`).
>
> I would have to test possible side-effects of the proposed shortcut to give you answer.
> Thanks for pointing it out.

Proposed shortcut seems to be OK, I've fixed it in `ChainedFieldBuilder`, `ChainedMethodBuilder` and `ChainedClassBuilder`. And removed unused `ChainedFieldBuilder.downstream` field.

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

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



More information about the build-dev mailing list