summaryrefslogtreecommitdiff
path: root/gnu/java/io/ObjectIdentityWrapper.java
diff options
context:
space:
mode:
authorRoman Kennke <roman@kennke.org>2006-08-21 09:27:50 +0000
committerRoman Kennke <roman@kennke.org>2006-08-21 09:27:50 +0000
commitdf85d7770fa993810394a6c05c2c1a2714c01e7a (patch)
treeac8741bd43f4fef8d355753ac9ea73b328025191 /gnu/java/io/ObjectIdentityWrapper.java
parent16897bc74303190427ca0a99963620463144d5e9 (diff)
downloadclasspath-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.java100
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;
-}