diff options
Diffstat (limited to 'libjava/java/io/ObjectInputStream.h')
-rw-r--r-- | libjava/java/io/ObjectInputStream.h | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/libjava/java/io/ObjectInputStream.h b/libjava/java/io/ObjectInputStream.h index eedf6c4aa6f..ab7c47d2b29 100644 --- a/libjava/java/io/ObjectInputStream.h +++ b/libjava/java/io/ObjectInputStream.h @@ -16,8 +16,10 @@ class java::io::ObjectInputStream : public ::java::io::InputStream public: ObjectInputStream(::java::io::InputStream *); virtual ::java::lang::Object * readObject(); + virtual ::java::lang::Object * readUnshared(); private: - ::java::lang::Object * parseContent(jbyte); + ::java::lang::Object * readObject(jboolean); + ::java::lang::Object * parseContent(jbyte, jboolean); void checkTypeConsistency(::java::lang::String *, JArray< ::java::io::ObjectStreamField * > *, JArray< ::java::io::ObjectStreamField * > *); public: // actually protected virtual ::java::io::ObjectStreamClass * readClassDescriptor(); @@ -60,10 +62,10 @@ public: // actually protected ObjectInputStream(); virtual ::java::lang::Object * readObjectOverride(); private: - jint assignNewHandle(::java::lang::Object *); - void rememberHandle(::java::lang::Object *, jint); + jint assignNewHandle(::java::lang::Object *, jboolean); + void rememberHandle(::java::lang::Object *, jboolean, jint); ::java::lang::Object * lookupHandle(jint); - ::java::lang::Object * processResolution(::java::io::ObjectStreamClass *, ::java::lang::Object *, jint); + ::java::lang::Object * processResolution(::java::io::ObjectStreamClass *, ::java::lang::Object *, jint, jboolean); void clearHandles(); void readNextBlock(); void readNextBlock(jbyte); @@ -86,7 +88,7 @@ private: jboolean useSubclassMethod; jint nextOID; jboolean resolveEnabled; - ::java::util::Vector * objectLookupTable; + ::java::util::Map * handles; ::java::lang::Object * currentObject; ::java::io::ObjectStreamClass * currentObjectStreamClass; ::java::util::TreeSet * currentObjectValidators; |