Locale.java (hashcode): No longer transient.
authorTom Tromey <tromey@redhat.com>
Wed, 27 Sep 2006 07:58:11 +0000 (07:58 +0000)
committerTom Tromey <tromey@gcc.gnu.org>
Wed, 27 Sep 2006 07:58:11 +0000 (07:58 +0000)
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

libjava/ChangeLog
libjava/java/util/Locale.java

index 8c4662d6f55794696529516bf9b1ac0c31409a0a..c54f4eebd6d338e9ac7718eba17934e9ba7936b5 100644 (file)
@@ -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
index d9ecd1ab35534ddf50061725d3a056e3c79d48a0..03689aa7a8a625c20daa8b6160ffca655a847984 100644 (file)
@@ -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