+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
/* 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.
*
* @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
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();
}
/**
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