- 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
|
private static function initStreamers () :void
|
||||||
{
|
{
|
||||||
if (_streamers == null) {
|
if (_streamers == null) {
|
||||||
_streamers = [
|
// Init like this so that _streamers is not null asap.
|
||||||
new StringStreamer(),
|
_streamers = [];
|
||||||
new ArrayStreamer(),
|
// 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 NumberStreamer(),
|
||||||
new ByteArrayStreamer(),
|
|
||||||
new ByteStreamer(),
|
new ByteStreamer(),
|
||||||
new ShortStreamer(),
|
new ShortStreamer(),
|
||||||
new IntegerStreamer(),
|
new IntegerStreamer(),
|
||||||
new LongStreamer(),
|
new LongStreamer(),
|
||||||
new FloatStreamer()
|
new FloatStreamer(),
|
||||||
];
|
new ArrayStreamer(),
|
||||||
|
new ByteArrayStreamer());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -26,13 +26,11 @@ public class ArrayStreamer extends Streamer
|
|||||||
|
|
||||||
} else if (secondChar === "L") {
|
} else if (secondChar === "L") {
|
||||||
// form is "[L<class>;"
|
// form is "[L<class>;"
|
||||||
var baseClass :String = jname.substring(2, jname.length - 1);
|
var baseJClass :String = jname.substring(2, jname.length - 1);
|
||||||
baseClass = Translations.getFromServer(baseClass);
|
_delegate = Streamer.getStreamerByJavaName(baseJClass);
|
||||||
_elementType = ClassUtil.getClassByName(baseClass);
|
_elementType = ClassUtil.getClassByName(
|
||||||
|
Translations.getFromServer(baseJClass));
|
||||||
_isFinal = ClassUtil.isFinal(_elementType);
|
_isFinal = ClassUtil.isFinal(_elementType);
|
||||||
if (_elementType == String) {
|
|
||||||
_delegate = new StringStreamer();
|
|
||||||
}
|
|
||||||
|
|
||||||
} else if (secondChar === "I") {
|
} else if (secondChar === "I") {
|
||||||
_elementType = int;
|
_elementType = int;
|
||||||
|
|||||||
Reference in New Issue
Block a user