CVSROOT: /cvsroot/classpath Module name: classpath Changes by: Roman Kennke <rabbit78> 06/08/21 09:27:50
Modified files: . : ChangeLog java/io : ObjectInputStream.java ObjectOutputStream.java ObjectStreamClass.java ObjectStreamField.java Added files: gnu/java/io : ObjectIdentityMap2Int.java Removed files: gnu/java/io : ObjectIdentityWrapper.java Log message: 2006-08-21 Friedjof Siebert <[EMAIL PROTECTED]> * java/io/ObjectInputStream.java (objectLookupTable): Changed to be a Vector. (ObjectInputStream): Initialize objectLookupTable as Vector. (assignNewHandle): Store Object using handle index rather than Hashtable, using the new rememberHandle() method. (hierarchy): New method. This replaces inputGetObjectStreamClasses() with a caching in ObjectStreamClass. (inputGetObjectStreamClass): Replaced by hierarchy(). (lookupHandle): New method. Looks up an object by it's handle index. (parseContent): Avoid creating of Integer objects. Use hierarchy() method for looking up the class hierarchy. (processResolution): Use rememberHandle() to store handle per index, rather than Hashtabling the object. (readFields): (rememberHandle): New method. * java/io/ObjectOutputStream.java (OIDLookupTable): Use ObjectIdentityMap2Int instead of Hashtable for improved lookup performance. (ObjectOutputStream): Initialize OIDLookupTable as ObjectIdentityMap2Int. (assignNewHandle): Change to use ObjectIdentityMap2Int. (findHandle): Change to use ObjectIdentityMap2Int. (getBooleanField): Removed. (getByteField): Removed. (getCharField): Removed. (getDoubleField): Removed. (getField): Removed. (getFloatField): Removed. (getIntField): Removed. (getLongField): Removed. (getObjectField): Removed. (writeFields(Object,ObjectStreamClass)): Use new helper method. (writeFields(Object,ObjectStreamField)): New helper method. Use switch rather then if-else cascade. (writeObject): Use int handle, rather then Integer. * java/io/ObjectStreamClass.java (hierarchy): New field. Caches the class hierarchy. (methodCache): New field. Caches methods. (readObjectSignature): New field. Stores the read signature. (uidCache): New field. Caches UIDs. (writeObjectSignature): New field. Stores the write signature. (cacheMethods): Cache methods in methodCache. (calculateClassID): Outsourced from getClassUID() for computing the UIDs. (getClassUIDFromField): Outsourced from getClassUID() for fetching the UID from the class field. (getClassUID): Use cached uid if possible. Use new helper methods for fetching the UID from the field or computing from scratch. (getObjectStreamClasses): Removed. Replaced by more efficient hierarchy() method, that also caches the result. (hierarchy): Replaces getObjectStreamClasses() for caching the result. (loadedByBootOrApplicationClassLoader): New helper method. (setClass): Invalidate hierarchy cache. (setSuperclass): Invalidate hierarchy cache. * java/io/ObjectStreamField.java (field): Made field package private for access from other classes. * gnu/java/io/ObjectIdentityWrapper.java: Removed. * gnu/java/io/ObjectIdentityMap2Int.java: Efficient hashtable for mapping objects to ints. CVSWeb URLs: http://cvs.savannah.gnu.org/viewcvs/classpath/ChangeLog?cvsroot=classpath&r1=1.8433&r2=1.8434 http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/java/io/ObjectIdentityMap2Int.java?cvsroot=classpath&rev=1.1 http://cvs.savannah.gnu.org/viewcvs/classpath/gnu/java/io/ObjectIdentityWrapper.java?cvsroot=classpath&r1=1.5&r2=0 http://cvs.savannah.gnu.org/viewcvs/classpath/java/io/ObjectInputStream.java?cvsroot=classpath&r1=1.78&r2=1.79 http://cvs.savannah.gnu.org/viewcvs/classpath/java/io/ObjectOutputStream.java?cvsroot=classpath&r1=1.68&r2=1.69 http://cvs.savannah.gnu.org/viewcvs/classpath/java/io/ObjectStreamClass.java?cvsroot=classpath&r1=1.45&r2=1.46 http://cvs.savannah.gnu.org/viewcvs/classpath/java/io/ObjectStreamField.java?cvsroot=classpath&r1=1.21&r2=1.22