- 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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user