From bdfecce76771f7699c2d0393f52de275a3fe1d24 Mon Sep 17 00:00:00 2001 From: Ray Greenwell Date: Wed, 8 Mar 2006 23:21:47 +0000 Subject: [PATCH] A bit of simplification. git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@3927 542714f4-19e9-0310-aa3c-eee0fc999fb1 --- .../com/threerings/io/ObjectInputStream.java | 19 +++++-------------- .../com/threerings/io/ObjectOutputStream.java | 19 +++++-------------- src/java/com/threerings/io/Streamer.java | 11 ++++------- 3 files changed, 14 insertions(+), 35 deletions(-) diff --git a/src/java/com/threerings/io/ObjectInputStream.java b/src/java/com/threerings/io/ObjectInputStream.java index ccbd4c747..5ce7d2861 100644 --- a/src/java/com/threerings/io/ObjectInputStream.java +++ b/src/java/com/threerings/io/ObjectInputStream.java @@ -151,7 +151,7 @@ public class ObjectInputStream extends DataInputStream // create an instance of the appropriate object Object target = cmap.streamer.createObject(this); - readBareObject(target, cmap.streamer); + readBareObject(target, cmap.streamer, true); return target; } catch (OutOfMemoryError oome) { @@ -170,20 +170,21 @@ public class ObjectInputStream extends DataInputStream public void readBareObject (Object object) throws IOException, ClassNotFoundException { - readBareObject(object, Streamer.getStreamer(object.getClass())); + readBareObject(object, Streamer.getStreamer(object.getClass()), true); } /** * Reads an object from the input stream that was previously written * with {@link ObjectOutputStream#writeBareObject}. */ - protected void readBareObject (Object object, Streamer streamer) + protected void readBareObject ( + Object object, Streamer streamer, boolean useReader) throws IOException, ClassNotFoundException { _current = object; _streamer = streamer; try { - _streamer.readObject(object, this, true); + _streamer.readObject(object, this, useReader); } finally { // clear out our current object references @@ -221,16 +222,6 @@ public class ObjectInputStream extends DataInputStream ", streamer=" + _streamer + "]"; } - /** - * Used by a {@link Streamer} that is reading an array of {@link - * Streamable} instances. - */ - protected void setCurrent (Streamer streamer, Object current) - { - _streamer = streamer; - _current = current; - } - /** Used to map classes to numeric codes and the {@link Streamer} * instance used to write them. */ protected HashIntMap _classmap; diff --git a/src/java/com/threerings/io/ObjectOutputStream.java b/src/java/com/threerings/io/ObjectOutputStream.java index c3639bdac..957ac6bc0 100644 --- a/src/java/com/threerings/io/ObjectOutputStream.java +++ b/src/java/com/threerings/io/ObjectOutputStream.java @@ -111,7 +111,7 @@ public class ObjectOutputStream extends DataOutputStream writeShort(cmap.code); } - writeBareObject(object, cmap.streamer); + writeBareObject(object, cmap.streamer, true); } /** @@ -127,19 +127,20 @@ public class ObjectOutputStream extends DataOutputStream public void writeBareObject (Object object) throws IOException { - writeBareObject(object, Streamer.getStreamer(object.getClass())); + writeBareObject(object, Streamer.getStreamer(object.getClass()), true); } /** * Write a {@link Streamable} instance without associated class metadata. */ - protected void writeBareObject (Object obj, Streamer streamer) + protected void writeBareObject ( + Object obj, Streamer streamer, boolean useWriter) throws IOException { _current = obj; _streamer = streamer; try { - _streamer.writeObject(obj, this, true); + _streamer.writeObject(obj, this, useWriter); } finally { _current = null; @@ -169,16 +170,6 @@ public class ObjectOutputStream extends DataOutputStream _streamer.writeObject(_current, this, false); } - /** - * Used by a {@link Streamer} that is writing an array of {@link - * Streamable} instances. - */ - protected void setCurrent (Streamer streamer, Object current) - { - _streamer = streamer; - _current = current; - } - /** Used to map classes to numeric codes and the {@link Streamer} * instance used to write them. */ protected HashMap _classmap; diff --git a/src/java/com/threerings/io/Streamer.java b/src/java/com/threerings/io/Streamer.java index 48de58f43..d20ba33b4 100644 --- a/src/java/com/threerings/io/Streamer.java +++ b/src/java/com/threerings/io/Streamer.java @@ -182,11 +182,9 @@ public class Streamer // now write out the populated elements for (int ii = 0; ii < length; ii++) { Object element = Array.get(object, ii); - if (element == null) { - continue; + if (element != null) { + out.writeBareObject(element, _delegate, useWriter); } - out.setCurrent(_delegate, element); - _delegate.writeObject(element, out, useWriter); } } else { @@ -326,13 +324,12 @@ public class Streamer // elements to read for (int ii = 0; ii < length; ii++) { if (mask.isSet(ii)) { - Object element = _delegate.createObject(in); - in.setCurrent(_delegate, element); if (ObjectInputStream.STREAM_DEBUG) { Log.info(in.hashCode() + ": Reading fixed element '" + ii + "'."); } - _delegate.readObject(element, in, useReader); + Object element = _delegate.createObject(in); + in.readBareObject(element, _delegate, useReader); Array.set(object, ii, element); } else if (ObjectInputStream.STREAM_DEBUG) { Log.info(in.hashCode() +