@@ -13,8 +13,8 @@ napi_value Mask(napi_env env, napi_callback_info info) {
1313 uint8_t * source ;
1414 uint8_t * mask ;
1515 uint8_t * destination ;
16- uint32_t offset ;
17- uint32_t length ;
16+ int64_t offset ;
17+ int64_t length ;
1818
1919 status = napi_get_buffer_info (env , argv [0 ], (void * * )& source , NULL );
2020 assert (status == napi_ok );
@@ -25,19 +25,19 @@ napi_value Mask(napi_env env, napi_callback_info info) {
2525 status = napi_get_buffer_info (env , argv [2 ], (void * * )& destination , NULL );
2626 assert (status == napi_ok );
2727
28- status = napi_get_value_uint32 (env , argv [3 ], & offset );
28+ status = napi_get_value_int64 (env , argv [3 ], & offset );
2929 assert (status == napi_ok );
3030
31- status = napi_get_value_uint32 (env , argv [4 ], & length );
31+ status = napi_get_value_int64 (env , argv [4 ], & length );
3232 assert (status == napi_ok );
3333
3434 destination += offset ;
35- uint32_t index = 0 ;
35+ uint8_t index = 0 ;
3636
3737 //
3838 // Alignment preamble.
3939 //
40- while (index < length && (( size_t )source % 8 ) ) {
40+ while (index < length && (size_t )source % 8 ) {
4141 * destination ++ = * source ++ ^ mask [index % 4 ];
4242 index ++ ;
4343 }
@@ -58,12 +58,12 @@ napi_value Mask(napi_env env, napi_callback_info info) {
5858 //
5959 // Apply 64 bit mask in 8 byte chunks.
6060 //
61- uint32_t loop = length / 8 ;
61+ int64_t loop = length / 8 ;
6262 uint64_t mask8 = ((uint64_t * )maskAlignedArray )[0 ];
6363 uint64_t * pFrom8 = (uint64_t * )source ;
6464 uint64_t * pTo8 = (uint64_t * )destination ;
6565
66- for (uint32_t i = 0 ; i < loop ; i ++ ) {
66+ for (int64_t i = 0 ; i < loop ; i ++ ) {
6767 pTo8 [i ] = pFrom8 [i ] ^ mask8 ;
6868 }
6969
@@ -74,7 +74,7 @@ napi_value Mask(napi_env env, napi_callback_info info) {
7474 source += 8 * loop ;
7575 destination += 8 * loop ;
7676
77- for (uint32_t i = 0 ; i < length ; i ++ ) {
77+ for (uint8_t i = 0 ; i < length ; i ++ ) {
7878 destination [i ] = source [i ] ^ maskAlignedArray [i ];
7979 }
8080
@@ -99,12 +99,12 @@ napi_value Unmask(napi_env env, napi_callback_info info) {
9999 status = napi_get_buffer_info (env , argv [1 ], (void * * )& mask , NULL );
100100 assert (status == napi_ok );
101101
102- uint32_t index = 0 ;
102+ uint8_t index = 0 ;
103103
104104 //
105105 // Alignment preamble.
106106 //
107- while (index < length && (( size_t )source % 8 ) ) {
107+ while (index < length && (size_t )source % 8 ) {
108108 * source ++ ^= mask [index % 4 ];
109109 index ++ ;
110110 }
@@ -125,11 +125,11 @@ napi_value Unmask(napi_env env, napi_callback_info info) {
125125 //
126126 // Apply 64 bit mask in 8 byte chunks.
127127 //
128- uint32_t loop = length / 8 ;
128+ size_t loop = length / 8 ;
129129 uint64_t mask8 = ((uint64_t * )maskAlignedArray )[0 ];
130130 uint64_t * pSource8 = (uint64_t * )source ;
131131
132- for (uint32_t i = 0 ; i < loop ; i ++ ) {
132+ for (size_t i = 0 ; i < loop ; i ++ ) {
133133 pSource8 [i ] ^= mask8 ;
134134 }
135135
@@ -139,7 +139,7 @@ napi_value Unmask(napi_env env, napi_callback_info info) {
139139 length %= 8 ;
140140 source += 8 * loop ;
141141
142- for (uint32_t i = 0 ; i < length ; i ++ ) {
142+ for (uint8_t i = 0 ; i < length ; i ++ ) {
143143 source [i ] ^= maskAlignedArray [i ];
144144 }
145145
0 commit comments