- Have the ArrayStreamer always look up its delegate, as it may need one

for element types other than String.
- Changed streamer init to prevent the above change from triggering
  a re-init when the delegate is looked-up.


git-svn-id: svn+ssh://src.earth.threerings.net/narya/trunk@4568 542714f4-19e9-0310-aa3c-eee0fc999fb1
This commit is contained in:
Ray Greenwell
2007-02-12 21:31:21 +00:00
parent 789fe8e433
commit b217e87519
2 changed files with 12 additions and 12 deletions
+8 -6
View File
@@ -145,17 +145,19 @@ public class Streamer
private static function initStreamers () :void
{
if (_streamers == null) {
_streamers = [
new StringStreamer(),
new ArrayStreamer(),
// Init like this so that _streamers is not null asap.
_streamers = [];
// We could add each one by one, so that any later streamers
// can find and use the earlier ones as delegates.
_streamers.push(new StringStreamer(),
new NumberStreamer(),
new ByteArrayStreamer(),
new ByteStreamer(),
new ShortStreamer(),
new IntegerStreamer(),
new LongStreamer(),
new FloatStreamer()
];
new FloatStreamer(),
new ArrayStreamer(),
new ByteArrayStreamer());
}
}
@@ -26,13 +26,11 @@ public class ArrayStreamer extends Streamer
} else if (secondChar === "L") {
// form is "[L<class>;"
var baseClass :String = jname.substring(2, jname.length - 1);
baseClass = Translations.getFromServer(baseClass);
_elementType = ClassUtil.getClassByName(baseClass);
var baseJClass :String = jname.substring(2, jname.length - 1);
_delegate = Streamer.getStreamerByJavaName(baseJClass);
_elementType = ClassUtil.getClassByName(
Translations.getFromServer(baseJClass));
_isFinal = ClassUtil.isFinal(_elementType);
if (_elementType == String) {
_delegate = new StringStreamer();
}
} else if (secondChar === "I") {
_elementType = int;