On Mon, 14 Jun 2021 13:43:40 GMT, Hannes Wallnöfer <hann...@openjdk.org> wrote:

> This change fixes a performance regression caused by passing instances of 
> `com.sun.tools.javac.util.Name` to a `html.markup.Text` object, where their 
> content is accessed using`CharSequence` methods which are implemented very 
> inefficiently. 
> 
> Since improving `javac.util.Name` will likely require a bit more work (see 
> JDK-8268622), a safe short term solution for JDK 17 is to make sure instances 
> of `Name` are converted to `String` before invoking said `CharSequence` 
> methods. The main fix is to convert to `String` early in 
> `Entity.escapeHtmlChars(CharSequence)` which is invoked by the `Text` 
> constructor. There are a few more `.toString()` invocations added in places 
> where a `Name` is appended to a `StringBuilder`, although these have less 
> performance impact.

I think this is a reasonable change for both JavaDoc and javac. That said, you 
should wait for someone from the compiler team to review it.

Meanwhile, update the copyright year in Entity.java

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

Marked as reviewed by prappo (Reviewer).

PR: https://git.openjdk.java.net/jdk17/pull/42

Reply via email to