You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ha...@apache.org on 2018/06/24 12:15:59 UTC
[royale-asjs] branch develop updated: Fixed BinaryData write methods
This is an automated email from the ASF dual-hosted git repository.
harbs pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
The following commit(s) were added to refs/heads/develop by this push:
new fc9a15f Fixed BinaryData write methods
fc9a15f is described below
commit fc9a15f1fbf59a02f0a7e45f34a133fbef5af0f8
Author: Harbs <ha...@in-tools.com>
AuthorDate: Sun Jun 24 15:15:51 2018 +0300
Fixed BinaryData write methods
---
.../royale/org/apache/royale/utils/BinaryData.as | 53 ++++++++++++++--------
1 file changed, 33 insertions(+), 20 deletions(-)
diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/BinaryData.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/BinaryData.as
index 6ff7aa7..6dba8d8 100644
--- a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/BinaryData.as
+++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/BinaryData.as
@@ -262,8 +262,7 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput
if (_position + 1 > _len) {
setBufferSize(_position + 1);
}
- new Uint8Array(ba, _position, 1)[0] = byte;
- _position++;
+ getTypedArray()[_position++] = byte;
}
}
/**
@@ -322,14 +321,18 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput
}
COMPILE::JS
{
- if (!_sysEndian) {
- short = (((short & 0xff00) >>> 8) | ((short & 0xff) <<8 ));
- }
if (_position + 2 > _len) {
setBufferSize(_position + 2);
}
- new Int16Array(ba, _position, 1)[0] = short;
- _position += 2;
+ var arr:Uint8Array = getTypedArray();
+ if(endian == Endian.BIG_ENDIAN){
+ arr[_position++] = (short & 0x0000ff00) >> 8;
+ arr[_position++] = (short & 0x000000ff);
+ } else {
+ arr[_position++] = (short & 0x000000ff);
+ arr[_position++] = (short & 0x0000ff00) >> 8;
+ }
+
}
}
@@ -351,14 +354,15 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput
}
COMPILE::JS
{
- if (!_sysEndian) {
- val = ((val & 0xff000000) >>> 24) | ((val & 0x00ff0000) >> 8) | ((val & 0x0000ff00) << 8) | (val << 24);
- }
- if (_position + 4 > _len) {
- setBufferSize(_position + 4);
- }
- new Uint32Array(ba, _position, 1)[0] = val;
- _position += 4;
+ writeInt(val);
+ // if (!_sysEndian) {
+ // val = ((val & 0xff000000) >>> 24) | ((val & 0x00ff0000) >> 8) | ((val & 0x0000ff00) << 8) | (val << 24);
+ // }
+ // if (_position + 4 > _len) {
+ // setBufferSize(_position + 4);
+ // }
+ // new Uint32Array(ba, _position, 1)[0] = val;
+ // _position += 4;
}
}
@@ -380,14 +384,23 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput
}
COMPILE::JS
{
- if (!_sysEndian) {
- val = (((val & 0xff000000) >>> 24) | ((val & 0x00ff0000) >> 8) | ((val & 0x0000ff00) << 8) | (val << 24)) >> 0;
- }
if (_position + 4 > _len) {
setBufferSize(_position + 4);
}
- new Int32Array(ba, _position, 1)[0] = val;
- _position += 4;
+ var arr:Uint8Array = getTypedArray();
+ if(endian == Endian.BIG_ENDIAN){
+
+ arr[_position++] = (val & 0xff000000) >> 24;
+ arr[_position++] = (val & 0x00ff0000) >> 16;
+ arr[_position++] = (val & 0x0000ff00) >> 8;
+ arr[_position++] = (val & 0x000000ff);
+ } else {
+ arr[_position++] = (val & 0x000000ff);
+ arr[_position++] = (val & 0x0000ff00) >> 8;
+ arr[_position++] = (val & 0x00ff0000) >> 16;
+ arr[_position++] = (val & 0xff000000) >> 24;
+ }
+
}
}
Re: [royale-asjs] branch develop updated: Fixed BinaryData write
methods
Posted by Harbs <ha...@gmail.com>.
I could not find a difference between writing signed and unsigned ints. Hence writeInt() and writeUnsignedInt() are identical code (one calls the other).
If I missed something, please let me know...
> On Jun 24, 2018, at 3:15 PM, harbs@apache.org wrote:
>
> This is an automated email from the ASF dual-hosted git repository.
>
> harbs pushed a commit to branch develop
> in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
>
>
> The following commit(s) were added to refs/heads/develop by this push:
> new fc9a15f Fixed BinaryData write methods
> fc9a15f is described below
>
> commit fc9a15f1fbf59a02f0a7e45f34a133fbef5af0f8
> Author: Harbs <ha...@in-tools.com>
> AuthorDate: Sun Jun 24 15:15:51 2018 +0300
>
> Fixed BinaryData write methods
> ---
> .../royale/org/apache/royale/utils/BinaryData.as | 53 ++++++++++++++--------
> 1 file changed, 33 insertions(+), 20 deletions(-)
>
> diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/BinaryData.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/BinaryData.as
> index 6ff7aa7..6dba8d8 100644
> --- a/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/BinaryData.as
> +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/utils/BinaryData.as
> @@ -262,8 +262,7 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput
> if (_position + 1 > _len) {
> setBufferSize(_position + 1);
> }
> - new Uint8Array(ba, _position, 1)[0] = byte;
> - _position++;
> + getTypedArray()[_position++] = byte;
> }
> }
> /**
> @@ -322,14 +321,18 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput
> }
> COMPILE::JS
> {
> - if (!_sysEndian) {
> - short = (((short & 0xff00) >>> 8) | ((short & 0xff) <<8 ));
> - }
> if (_position + 2 > _len) {
> setBufferSize(_position + 2);
> }
> - new Int16Array(ba, _position, 1)[0] = short;
> - _position += 2;
> + var arr:Uint8Array = getTypedArray();
> + if(endian == Endian.BIG_ENDIAN){
> + arr[_position++] = (short & 0x0000ff00) >> 8;
> + arr[_position++] = (short & 0x000000ff);
> + } else {
> + arr[_position++] = (short & 0x000000ff);
> + arr[_position++] = (short & 0x0000ff00) >> 8;
> + }
> +
> }
> }
>
> @@ -351,14 +354,15 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput
> }
> COMPILE::JS
> {
> - if (!_sysEndian) {
> - val = ((val & 0xff000000) >>> 24) | ((val & 0x00ff0000) >> 8) | ((val & 0x0000ff00) << 8) | (val << 24);
> - }
> - if (_position + 4 > _len) {
> - setBufferSize(_position + 4);
> - }
> - new Uint32Array(ba, _position, 1)[0] = val;
> - _position += 4;
> + writeInt(val);
> + // if (!_sysEndian) {
> + // val = ((val & 0xff000000) >>> 24) | ((val & 0x00ff0000) >> 8) | ((val & 0x0000ff00) << 8) | (val << 24);
> + // }
> + // if (_position + 4 > _len) {
> + // setBufferSize(_position + 4);
> + // }
> + // new Uint32Array(ba, _position, 1)[0] = val;
> + // _position += 4;
> }
> }
>
> @@ -380,14 +384,23 @@ public class BinaryData implements IBinaryDataInput, IBinaryDataOutput
> }
> COMPILE::JS
> {
> - if (!_sysEndian) {
> - val = (((val & 0xff000000) >>> 24) | ((val & 0x00ff0000) >> 8) | ((val & 0x0000ff00) << 8) | (val << 24)) >> 0;
> - }
> if (_position + 4 > _len) {
> setBufferSize(_position + 4);
> }
> - new Int32Array(ba, _position, 1)[0] = val;
> - _position += 4;
> + var arr:Uint8Array = getTypedArray();
> + if(endian == Endian.BIG_ENDIAN){
> +
> + arr[_position++] = (val & 0xff000000) >> 24;
> + arr[_position++] = (val & 0x00ff0000) >> 16;
> + arr[_position++] = (val & 0x0000ff00) >> 8;
> + arr[_position++] = (val & 0x000000ff);
> + } else {
> + arr[_position++] = (val & 0x000000ff);
> + arr[_position++] = (val & 0x0000ff00) >> 8;
> + arr[_position++] = (val & 0x00ff0000) >> 16;
> + arr[_position++] = (val & 0xff000000) >> 24;
> + }
> +
> }
> }
>
>