Maybe the type of “data” should be platform specific?

Then you could use: bd2.writeData(bd1.data);

> On Feb 21, 2019, at 7:18 PM, Greg Dove <[email protected]> wrote:
> 
> The main thought was for things like xhr.response which is ArrayBuffer and
> can be used directly.
> That could be changed if it was preferred. I kept it the same as it was the
> native 'bytearray' implementation for the target platform and that seemed
> to correspond more to ArrayBuffer than Uint8Array. But those two are very
> easily interchanged I think - ArrayBuffer just seemed the more base level
> implementation.
> 
> anyway, as I have it now, writeBinaryData is basically doing the same thing:
> 
> COMPILE::JS
>        {
> writeBytes(bytes.ba as ArrayBuffer)
>        }
> 
> with @royaleignorecoercion ArrayBuffer
> 
> More caution is obviously needed for using the readBytes method because
> these things in js are fixed length compared to ByteArray which grows as
> needed.
> 
> 
> On Fri, Feb 22, 2019 at 6:03 AM Harbs <[email protected]> wrote:
> 
>> What’s the reason you are using ArrayBuffer instead of Uint8Array on the
>> JS side?
>> 
>> If you’d use Uint8Array instead, the method could be used like so:
>> 
>> bd2.writeData(bd1.array);
>> 
>> 
>>> On Feb 21, 2019, at 6:40 PM, Greg Dove <[email protected]> wrote:
>>> 
>>> Hi Harbs,
>>> 
>>> Part of the reason for posting this was to surface any concerns early.
>>> This is my fault because when I added these methods a few years back I
>>> thought it seemed ok to use BinaryData as the 'bytes' argument type in
>> them
>>> at the time. But the issue there is that it breaks compatibility with swf
>>> interfaces for IExternalizable, because that becomes incompatible for
>>> readBytes/writeBytes in the IDataInput/IDataOutput interfaces.
>>> I guess it could be avoidable in other ways, but it seems better to go
>> for
>>> the consistency and provide the writeBytes/readBytes methods as the
>> native
>>> platform variants.
>>> 
>>> The change however is quite trivial:
>>> 
>>> what was
>>> function writeBytes(bytes:BinaryData, offset:uint = 0, length:uint =
>> 0):void
>>> 
>>> will become
>>> 
>>> COMPILE::SWF
>>> public function writeBytes(bytes:ByteArray, offset:uint = 0, length:uint
>> =
>>> 0):void
>>> 
>>> and
>>> COMPILE::JS
>>> public function writeBytes(bytes:ArrayBuffer, offset:uint = 0,
>> length:uint
>>> = 0):void
>>> 
>>> and the original method signature will remain available as:
>>> public function writeBinaryData(bytes:BinaryData, offset:uint = 0,
>>> length:uint = 0):void
>>> 
>>> Likewise for the corresponding read methods. And although the code has
>>> changed slightly, it works as before.
>>> 
>>> So it is a simple search and replace in files
>>> 
>>> 
>>> On Thu, Feb 21, 2019 at 9:15 PM Harbs <[email protected]> wrote:
>>> 
>>>> What did you change? I’m using these methods, so it’s significant to me.
>>>> 
>>>>> On Feb 21, 2019, at 7:20 AM, Greg Dove <[email protected]> wrote:
>>>>> 
>>>>> I had to change the writeBytes/readBytes method signatures.
>>>>> The original method signature is still available but will become
>>>>> writeBinaryData/readBinaryData
>>>> 
>>>> 
>> 
>> 

Reply via email to