Found and fixed the "Mother Fucker of a Bug(tm)" that was causing Zyraxxis to hork. Deep within our streaming code, ArrayMask objects were being created with zero length when streaming non-final arrays with a zero length. This tickled a "feature" of Adobe's IDataInput code, which reads *all available bytes* if you pass readBytes() a length of 0. What's really annoying is that this worked fine if you were notified of the zero-length array via a PropertySetEvent, because that event would come in on its own frame and so if the array's length was zero then there were no more bytes to read. But if you entered a game and had to receive all the usercode properties at once, it booched. There are clumps of my pulled-out hair all around my desk from that. And: this is ultimately my own fault, as my old code didn't handle the case of the passed-in ByteArray having 0 length.
Found and fixed the "Mother Fucker of a Bug(tm)" that was causing
Zyraxxis to hork.
Deep within our streaming code, ArrayMask objects were being created with
zero length when streaming non-final arrays with a zero length. This tickled
a "feature" of Adobe's IDataInput code, which reads *all available bytes*
if you pass readBytes() a length of 0.
What's really annoying is that this worked fine if you were notified
of the zero-length array via a PropertySetEvent, because that event
would come in on its own frame and so if the array's length was zero then
there were no more bytes to read. But if you entered a game and had
to receive all the usercode properties at once, it booched.
There are clumps of my pulled-out hair all around my desk from that.
And: this is ultimately my own fault, as my old code didn't handle the
case of the passed-in ByteArray having 0 length.


git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@4900 542714f4-19e9-0310-aa3c-eee0fc999fb1

threerings/narya,threerings/narya,threerings/narya,threerings/narya,threerings/narya