diff options
| author | Roman Kennke <roman@kennke.org> | 2006-08-21 09:27:50 +0000 |
|---|---|---|
| committer | Roman Kennke <roman@kennke.org> | 2006-08-21 09:27:50 +0000 |
| commit | df85d7770fa993810394a6c05c2c1a2714c01e7a (patch) | |
| tree | ac8741bd43f4fef8d355753ac9ea73b328025191 /gnu/java/io/ObjectIdentityWrapper.java | |
| parent | 16897bc74303190427ca0a99963620463144d5e9 (diff) | |
| download | classpath-df85d7770fa993810394a6c05c2c1a2714c01e7a.tar.gz | |
2006-08-21 Friedjof Siebert <siebert@aicas.com>
* 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.
Diffstat (limited to 'gnu/java/io/ObjectIdentityWrapper.java')
| -rw-r--r-- | gnu/java/io/ObjectIdentityWrapper.java | 100 |
1 files changed, 0 insertions, 100 deletions
diff --git a/gnu/java/io/ObjectIdentityWrapper.java b/gnu/java/io/ObjectIdentityWrapper.java deleted file mode 100644 index 6db2e3a52..000000000 --- a/gnu/java/io/ObjectIdentityWrapper.java +++ /dev/null @@ -1,100 +0,0 @@ -/* ObjectIdentityWrapper.java -- Wrapper class used to override equals() - and hashCode() to be as discriminating as possible - Copyright (C) 1998 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package gnu.java.io; - -/** - This class is a thin wrapper around <code>Object</code> that makes - the methods <code>hashCode()</code> and <code>equals(Object)</code> - as discriminating as possible. -*/ -public class ObjectIdentityWrapper -{ - - /** - Constructs a <code>ObjectIdentityWrapper</code> that is wrapped - around o. - */ - public ObjectIdentityWrapper( Object o ) - { - object = o; - } - - /** - Uses <code>System.identityHashCode(Object)</code> to compute a - hash code for the object wrapped by this - <code>ObjectIdentityWrapper</code>. - - @see java.lang.System#identityHashCode(java.lang.Object) - @see java.util.Hashtable - @see java.lang.Object#hashCode() - */ - public int hashCode() - { - return System.identityHashCode( object ); - } - - /** - Uses the <code>==</code> operator to test for equality between - the object wrapped by this <code>ObjectIdentityWrapper</code> and - the object wrapped by the <code>ObjectIdentityWrapper</code> o. - Returns false if o is not a <code>ObjectIdentityWrapper</code>. - - @see java.util.Hashtable - @see java.lang.Object#equals() - */ - public boolean equals( Object o ) - { - if( o instanceof ObjectIdentityWrapper ) - return object == ((ObjectIdentityWrapper)o).object; - else - return false; - } - - public String toString() - { - return "ObjectIdentityWrapper< " + object + ", " + hashCode() + " >"; - } - - /** - The <code>Object</code> wrapped by this - <code>ObjectIdentityWrapper</code>. - */ - public Object object; -} |
