diff --git a/src/as/com/threerings/crowd/data/PlaceObject.as b/src/as/com/threerings/crowd/data/PlaceObject.as index 4638d8aa7..5c2fb63d7 100644 --- a/src/as/com/threerings/crowd/data/PlaceObject.as +++ b/src/as/com/threerings/crowd/data/PlaceObject.as @@ -192,7 +192,6 @@ public class PlaceObject extends DObject public override function readObject (ins :ObjectInputStream) :void { super.readObject(ins); - // TODO: this needs fixing! occupants = (ins.readObject() as OidList); occupantInfo = (ins.readObject() as DSet); speakService = (ins.readObject() as SpeakMarshaller); diff --git a/src/as/com/threerings/io/Streamer.as b/src/as/com/threerings/io/Streamer.as index 73b0c37e0..677745509 100644 --- a/src/as/com/threerings/io/Streamer.as +++ b/src/as/com/threerings/io/Streamer.as @@ -3,7 +3,6 @@ package com.threerings.io { import flash.utils.ByteArray; import com.threerings.util.ClassUtil; -import com.threerings.util.SimpleMap; import com.threerings.io.streamers.ArrayStreamer; import com.threerings.io.streamers.ByteStreamer; @@ -147,7 +146,7 @@ public class Streamer if (_streamers == null) { _streamers = [ new StringStreamer(), - new ArrayStreamer("[Ljava.lang.Object;"), + new ArrayStreamer(), new NumberStreamer(), new ByteArrayStreamer(), new ByteStreamer(), diff --git a/src/as/com/threerings/io/streamers/ArrayStreamer.as b/src/as/com/threerings/io/streamers/ArrayStreamer.as index 204d7217b..f2984ea53 100644 --- a/src/as/com/threerings/io/streamers/ArrayStreamer.as +++ b/src/as/com/threerings/io/streamers/ArrayStreamer.as @@ -14,7 +14,7 @@ import com.threerings.presents.Log; */ public class ArrayStreamer extends Streamer { - public function ArrayStreamer (jname :String) + public function ArrayStreamer (jname :String = "[Ljava.lang.Object;") { super(TypedArray, jname); diff --git a/src/as/com/threerings/util/Name.as b/src/as/com/threerings/util/Name.as index e9fa18379..281304a10 100644 --- a/src/as/com/threerings/util/Name.as +++ b/src/as/com/threerings/util/Name.as @@ -7,7 +7,7 @@ import com.threerings.io.ObjectOutputStream; import com.threerings.io.Streamable; public class Name extends Object - implements Equalable, Streamable + implements Hashable, Streamable { public function Name (name :String = "") { @@ -37,13 +37,24 @@ public class Name extends Object return _name; } - // documentation inherited from interface Equalable + // documentation inherited from interface Hashable public function equals (other :Object) :Boolean { return (other is Name) && (getNormal() === (other as Name).getNormal()); } + // documentation inherited from interface Hashable + public function hashCode () :int + { + var norm :String = getNormal(); + var hash :int = 0; + for (var ii :int = 0; ii < norm.length; ii++) { + hash = (hash << 1) ^ int(norm.charCodeAt(ii)); + } + return hash; + } + // documentation inherited from interface Streamable public function writeObject (out :ObjectOutputStream) :void //throws IOError