@@ -59,24 +59,23 @@ napi_value Mask(napi_env env, napi_callback_info info) {
5959 // Apply 64 bit mask in 8 byte chunks.
6060 //
6161 uint32_t loop = length / 8 ;
62- uint64_t * pMask8 = (uint64_t * )maskAlignedArray ;
63-
64- while (loop -- ) {
65- uint64_t * pFrom8 = (uint64_t * )source ;
66- uint64_t * pTo8 = (uint64_t * )destination ;
67- * pTo8 = * pFrom8 ^ * pMask8 ;
68- source += 8 ;
69- destination += 8 ;
62+ uint64_t mask8 = ((uint64_t * )maskAlignedArray )[0 ];
63+ uint64_t * pFrom8 = (uint64_t * )source ;
64+ uint64_t * pTo8 = (uint64_t * )destination ;
65+
66+ for (uint32_t i = 0 ; i < loop ; i ++ ) {
67+ pTo8 [i ] = pFrom8 [i ] ^ mask8 ;
7068 }
7169
7270 //
7371 // Apply mask to remaining data.
7472 //
75- uint8_t * pmaskAlignedArray = maskAlignedArray ;
76-
7773 length %= 8 ;
78- while (length -- ) {
79- * destination ++ = * source ++ ^ * pmaskAlignedArray ++ ;
74+ source += 8 * loop ;
75+ destination += 8 * loop ;
76+
77+ for (uint32_t i = 0 ; i < length ; i ++ ) {
78+ destination [i ] = source [i ] ^ maskAlignedArray [i ];
8079 }
8180
8281 return NULL ;
@@ -91,8 +90,8 @@ napi_value Unmask(napi_env env, napi_callback_info info) {
9190 assert (status == napi_ok );
9291
9392 uint8_t * source ;
94- size_t length ;
9593 uint8_t * mask ;
94+ size_t length ;
9695
9796 status = napi_get_buffer_info (env , argv [0 ], (void * * )& source , & length );
9897 assert (status == napi_ok );
@@ -127,22 +126,21 @@ napi_value Unmask(napi_env env, napi_callback_info info) {
127126 // Apply 64 bit mask in 8 byte chunks.
128127 //
129128 uint32_t loop = length / 8 ;
130- uint64_t * pMask8 = (uint64_t * )maskAlignedArray ;
129+ uint64_t mask8 = ((uint64_t * )maskAlignedArray )[0 ];
130+ uint64_t * pSource8 = (uint64_t * )source ;
131131
132- while (loop -- ) {
133- uint64_t * pSource8 = (uint64_t * )source ;
134- * pSource8 ^= * pMask8 ;
135- source += 8 ;
132+ for (uint32_t i = 0 ; i < loop ; i ++ ) {
133+ pSource8 [i ] ^= mask8 ;
136134 }
137135
138136 //
139137 // Apply mask to remaining data.
140138 //
141- uint8_t * pmaskAlignedArray = maskAlignedArray ;
142-
143139 length %= 8 ;
144- while (length -- ) {
145- * source ++ ^= * pmaskAlignedArray ++ ;
140+ source += 8 * loop ;
141+
142+ for (uint32_t i = 0 ; i < length ; i ++ ) {
143+ source [i ] ^= maskAlignedArray [i ];
146144 }
147145
148146 return NULL ;
0 commit comments