aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2006-09-27 07:58:11 +0000
committerTom Tromey <tromey@gcc.gnu.org>2006-09-27 07:58:11 +0000
commitd79d57fa02ceab03bd4e22945ff7d18248c9d654 (patch)
tree80f0820b20e882592809e7b0bfae5de14b33cb3b /libjava
parent6ae72522633c60b658bf19bc304c4f9fb49f372a (diff)
downloadgcc-d79d57fa02ceab03bd4e22945ff7d18248c9d654.zip
gcc-d79d57fa02ceab03bd4e22945ff7d18248c9d654.tar.gz
gcc-d79d57fa02ceab03bd4e22945ff7d18248c9d654.tar.bz2
Locale.java (hashcode): No longer transient.
https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=201712 * java/util/Locale.java (hashcode): No longer transient. (writeObject): Use ObjectOutputStream.PutField and defaultWriteObject. (readObject): Use defaultReadObject. From-SVN: r117248
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog8
-rw-r--r--libjava/java/util/Locale.java20
2 files changed, 17 insertions, 11 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 8c4662d6..c54f4ee 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,11 @@
+2006-09-27 Tom Tromey <tromey@redhat.com>
+
+ https://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=201712
+ * java/util/Locale.java (hashcode): No longer transient.
+ (writeObject): Use ObjectOutputStream.PutField and
+ defaultWriteObject.
+ (readObject): Use defaultReadObject.
+
2006-09-25 Keith Seitz <keiths@redhat.com>
* gnu/classpath/jdwp/VMVirtualMachine.java
diff --git a/libjava/java/util/Locale.java b/libjava/java/util/Locale.java
index d9ecd1a..03689aa 100644
--- a/libjava/java/util/Locale.java
+++ b/libjava/java/util/Locale.java
@@ -1,5 +1,5 @@
/* Locale.java -- i18n locales
- Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005, 2006 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -190,7 +190,7 @@ public final class Locale implements Serializable, Cloneable
*
* @serial should be -1 in serial streams
*/
- private transient int hashcode;
+ private int hashcode;
/**
* The default locale. Except for during bootstrapping, this should never be
@@ -839,11 +839,9 @@ public final class Locale implements Serializable, Cloneable
private void writeObject(ObjectOutputStream s)
throws IOException
{
- s.writeObject(language);
- s.writeObject(country);
- s.writeObject(variant);
- // Hashcode field is always written as -1.
- s.writeInt(-1);
+ ObjectOutputStream.PutField fields = s.putFields();
+ fields.put("hashcode", -1);
+ s.defaultWriteObject();
}
/**
@@ -857,10 +855,10 @@ public final class Locale implements Serializable, Cloneable
private void readObject(ObjectInputStream s)
throws IOException, ClassNotFoundException
{
- language = ((String) s.readObject()).intern();
- country = ((String) s.readObject()).intern();
- variant = ((String) s.readObject()).intern();
- // Recompute hashcode.
+ s.defaultReadObject();
+ language = language.intern();
+ country = country.intern();
+ variant = variant.intern();
hashcode = language.hashCode() ^ country.hashCode() ^ variant.hashCode();
}
} // class Locale