This refactor some `sun.nio.cs.ext` charsets, such as ISO-2022-CN-GB, 
ISO-2022-CN-CNS, ISO-2022-KR and a few others to use static rather than 
per-instance auxiliary decoders. Doing so reduce overheads of calling 
`charset.newDecoder()`. This reduce or eliminate regressions on `new 
String(byte[], String)` operations due the removal of thread-local decoder 
caching in [JDK-8259842](https://bugs.openjdk.java.net/browse/JDK-8259842)

Most ISO-2022 Charsets define a specialized decoder already. The 
`ISO2022.Decoder` class was only used by `ISO2022_KR`, so folding it into that 
implementation and simplifying the code brings a rather significant speed-up, 
both to decoder creation and on actual decoding.

Testing: tier1-3, manual runs of sun.nio.cs tests

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

Commit messages:
 - Minor cleanup
 - Reduce decoder creation overheads for sun.nio.cs.ext Charsets

Changes: https://git.openjdk.java.net/jdk/pull/2480/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=2480&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8261418
  Stats: 761 lines in 15 files changed: 258 ins; 411 del; 92 mod
  Patch: https://git.openjdk.java.net/jdk/pull/2480.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/2480/head:pull/2480

PR: https://git.openjdk.java.net/jdk/pull/2480

Reply via email to