diff options
Diffstat (limited to 'libjava/java/util/Locale.java')
-rw-r--r-- | libjava/java/util/Locale.java | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/libjava/java/util/Locale.java b/libjava/java/util/Locale.java index 60fdd0a..431824f 100644 --- a/libjava/java/util/Locale.java +++ b/libjava/java/util/Locale.java @@ -231,9 +231,9 @@ public final class Locale implements Serializable, Cloneable // default locale. if (defaultLocale != null) { - language = convertLanguage(language); - country = country.toUpperCase(); - variant = variant.toUpperCase(); + language = convertLanguage(language).intern(); + country = country.toUpperCase().intern(); + variant = variant.toUpperCase().intern(); } this.language = language; this.country = country; @@ -436,7 +436,7 @@ public final class Locale implements Serializable, Cloneable */ public String getISO3Language() { - if ("".equals(language)) + if (language == "") return ""; int index = ("aa,ab,af,am,ar,as,ay,az,ba,be,bg,bh,bi,bn,bo,br,ca,co,cs,cy,da," @@ -472,7 +472,7 @@ public final class Locale implements Serializable, Cloneable */ public String getISO3Country() { - if ("".equals(country)) + if (country == "") return ""; int index = ("AD,AE,AF,AG,AI,AL,AM,AN,AO,AQ,AR,AS,AT,AU,AW,AZ,BA,BB,BD,BE,BF," @@ -729,9 +729,13 @@ public final class Locale implements Serializable, Cloneable return false; Locale l = (Locale) obj; - return (language.equals(l.language) - && country.equals(l.country) - && variant.equals(l.variant)); + // ??? We might also want to add: + // hashCode() == l.hashCode() + // But this is a synchronized method. Is the overhead worth it? + // Measure this to make a decision. + return (language == l.language + && country == l.country + && variant == l.variant); } /** |