From f28a3f1b156e72a0460803246cb636e494878189 Mon Sep 17 00:00:00 2001 From: Glavo Date: Wed, 15 Feb 2023 17:24:53 +0800 Subject: [PATCH 1/3] Use Set.of in Charset --- .../share/classes/java/nio/charset/Charset.java | 10 ++-------- 1 file changed, 2 insertions(+), 8 deletions(-) diff --git a/src/java.base/share/classes/java/nio/charset/Charset.java b/src/java.base/share/classes/java/nio/charset/Charset.java index dbaa2a2f12daa..bce1dfe8aaf04 100644 --- a/src/java.base/share/classes/java/nio/charset/Charset.java +++ b/src/java.base/share/classes/java/nio/charset/Charset.java @@ -38,7 +38,6 @@ import java.security.PrivilegedAction; import java.util.Arrays; import java.util.Collections; -import java.util.HashSet; import java.util.Iterator; import java.util.Locale; import java.util.Map; @@ -714,13 +713,8 @@ public final String name() { * @return An immutable set of this charset's aliases */ public final Set aliases() { - if (aliasSet != null) - return aliasSet; - int n = aliases.length; - HashSet hs = HashSet.newHashSet(n); - for (int i = 0; i < n; i++) - hs.add(aliases[i]); - aliasSet = Collections.unmodifiableSet(hs); + if (aliasSet == null) + aliasSet = Set.of(aliases); return aliasSet; } From 0eea8b8c87d670c08254d0d528127e4444738a67 Mon Sep 17 00:00:00 2001 From: Glavo Date: Tue, 21 Feb 2023 01:50:35 +0800 Subject: [PATCH 2/3] update --- .../share/classes/java/nio/charset/Charset.java | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/java.base/share/classes/java/nio/charset/Charset.java b/src/java.base/share/classes/java/nio/charset/Charset.java index bce1dfe8aaf04..871dc92c8efbb 100644 --- a/src/java.base/share/classes/java/nio/charset/Charset.java +++ b/src/java.base/share/classes/java/nio/charset/Charset.java @@ -666,7 +666,7 @@ public static Charset defaultCharset() { private final String name; // tickles a bug in oldjavac private final String[] aliases; // tickles a bug in oldjavac - private Set aliasSet = null; + private Set aliasSet; /** * Initializes a new charset with the given canonical name and alias @@ -713,9 +713,12 @@ public final String name() { * @return An immutable set of this charset's aliases */ public final Set aliases() { - if (aliasSet == null) - aliasSet = Set.of(aliases); - return aliasSet; + Set as = this.aliasSet; + if (as == null) { + as = Set.of(aliases); + this.aliasSet = as; + } + return as; } /** From fdb423d4f82ef61493d809f16d3a72a84343b02f Mon Sep 17 00:00:00 2001 From: Glavo Date: Tue, 21 Feb 2023 02:29:47 +0800 Subject: [PATCH 3/3] update --- .../share/classes/java/nio/charset/Charset.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/java.base/share/classes/java/nio/charset/Charset.java b/src/java.base/share/classes/java/nio/charset/Charset.java index 871dc92c8efbb..894965bf4d22a 100644 --- a/src/java.base/share/classes/java/nio/charset/Charset.java +++ b/src/java.base/share/classes/java/nio/charset/Charset.java @@ -713,12 +713,12 @@ public final String name() { * @return An immutable set of this charset's aliases */ public final Set aliases() { - Set as = this.aliasSet; - if (as == null) { - as = Set.of(aliases); - this.aliasSet = as; + Set set = this.aliasSet; + if (set == null) { + set = Set.of(aliases); + this.aliasSet = set; } - return as; + return set; } /**