RFR: 8289658: Avoid redundant LinkedHashMap.get call in TagletManager.addNewSimpleCustomTag [v2]

Attila Szegedi attila at openjdk.org
Mon Jul 4 17:01:44 UTC 2022


On Mon, 4 Jul 2022 16:02:31 GMT, Andrey Turbanov <aturbanov at openjdk.org> wrote:

>> src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java line 314:
>> 
>>> 312:             return;
>>> 313:         }
>>> 314:         Taglet tag = allTaglets.remove(tagName);
>> 
>> The logic was somewhat clearer before. This code may be correct, but it would help to have an explanatory comment.
>> Note this code is only executed once per run of javadoc, so performance is definitely not an issue.
>
> Hm.  For me the previous code is confusing. Subsequent remove+put by the same key looks like some leftovers after refactoring.
> Javadoc of this method is very explanatory. New code just repeats what is written there.  Not sure if additional comment required.

In a context of a linked hash map, remove+put has the effect of reordering. In your refactor there's still a remove+put on the same key, you essentially just hoisted the two common occurrences from both branches to outside the if statement.

Not to _necessarily_ appeal to authority, but Jon is a true multi-decade veteran of Java language tooling and knows more about Javadoc than most of us combined, so if all he asks for is a comment, I'd add a comment :-). Maybe something to the effect of


// remove + put in both branches below move the tag to the back of the map's ordering

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

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


More information about the javadoc-dev mailing list