RFR: 8305746: InitializeEncoding should cache Charset object instead of charset name [v2]

Naoto Sato naoto at openjdk.org
Tue Apr 18 21:17:45 UTC 2023


On Tue, 18 Apr 2023 11:34:45 GMT, Peter Hofer <phofer at openjdk.org> wrote:

>> Store `Charset` object in `jnuEncoding` and use `String(byte[], Charset)` and `String.getBytes(Charset)` instead of passing the charset name.
>
> Peter Hofer has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains one commit:
> 
>   8305746: InitializeEncoding should cache Charset object instead of charset name

Looks good to me (with minor nits). Since it would be hard to write a regression test, what kind of tests have you done? Did you run your patch on platforms that made sure your new code path work?

src/java.base/share/native/libjava/jni_util.c line 628:

> 626: 
> 627: static int fastEncoding = NO_ENCODING_YET;
> 628: static jobject jnuEncoding = NULL;

Maybe `jnuCharset` is clearer that it is a `Charset` object.

src/java.base/share/native/libjava/jni_util.c line 757:

> 755:                 jnuEncoding = (*env)->NewGlobalRef(env, charset.l);
> 756:                 (*env)->DeleteLocalRef(env, charset.l);
> 757:                 break;

Could return immediately

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

PR Review: https://git.openjdk.org/jdk/pull/13499#pullrequestreview-1390934727
PR Review Comment: https://git.openjdk.org/jdk/pull/13499#discussion_r1170569204
PR Review Comment: https://git.openjdk.org/jdk/pull/13499#discussion_r1170568134


More information about the core-libs-dev mailing list