@@ -64,18 +64,18 @@ public Bytes transform(Bytes victim, boolean inPlace) {
6464 throw new IllegalArgumentException ("all byte array must be of same length doing bit wise operation" );
6565 }
6666
67- byte [] out = inPlace ? victim .array () : new byte [victim .length ()];
67+ byte [] out = inPlace ? victim .internalArray () : new byte [victim .length ()];
6868
6969 for (int i = 0 ; i < victim .length (); i ++) {
7070 switch (mode ) {
7171 case OR :
72- out [i ] = (byte ) (victim .array ()[i ] | secondArray [i ]);
72+ out [i ] = (byte ) (victim .internalArray ()[i ] | secondArray [i ]);
7373 break ;
7474 case AND :
75- out [i ] = (byte ) (victim .array ()[i ] & secondArray [i ]);
75+ out [i ] = (byte ) (victim .internalArray ()[i ] & secondArray [i ]);
7676 break ;
7777 case XOR :
78- out [i ] = (byte ) (victim .array ()[i ] ^ secondArray [i ]);
78+ out [i ] = (byte ) (victim .internalArray ()[i ] ^ secondArray [i ]);
7979 break ;
8080 default :
8181 throw new IllegalArgumentException ("unknown bitwise transform mode " + mode );
@@ -94,10 +94,10 @@ public Bytes transform(Bytes victim, boolean inPlace) {
9494 final class NegateTransformer implements BytesTransformer {
9595 @ Override
9696 public Bytes transform (Bytes victim , boolean inPlace ) {
97- byte [] out = inPlace ? victim .array () : new byte [ victim .length ()] ;
97+ byte [] out = inPlace ? victim .internalArray () : victim .copy (). internalArray () ;
9898
9999 for (int i = 0 ; i < victim .length (); i ++) {
100- out [i ] = (byte ) ~victim . array () [i ];
100+ out [i ] = (byte ) ~out [i ];
101101 }
102102
103103 return inPlace ? victim : Bytes .wrap (out );
@@ -129,9 +129,9 @@ public Bytes transform(Bytes victim, boolean inPlace) {
129129 BigInteger bigInt ;
130130
131131 if (inPlace ) {
132- bigInt = new BigInteger (victim .array ());
132+ bigInt = new BigInteger (victim .internalArray ());
133133 } else {
134- bigInt = new BigInteger (victim .copy ().array ());
134+ bigInt = new BigInteger (victim .copy ().internalArray ());
135135 }
136136
137137 switch (type ) {
@@ -160,7 +160,7 @@ public ConcatTransformer(byte[] secondArrays) {
160160
161161 @ Override
162162 public Bytes transform (Bytes victim , boolean inPlace ) {
163- return Bytes .wrap (Util .concat (victim .array (), secondArray ));
163+ return Bytes .wrap (Util .concat (victim .internalArray (), secondArray ));
164164 }
165165 }
166166
@@ -170,14 +170,13 @@ public Bytes transform(Bytes victim, boolean inPlace) {
170170 final class ReverseTransformer implements BytesTransformer {
171171 @ Override
172172 public Bytes transform (Bytes victim , boolean inPlace ) {
173- byte [] out = inPlace ? victim .array () : new byte [ victim .length ()] ;
173+ byte [] out = inPlace ? victim .internalArray () : victim .copy (). internalArray () ;
174174
175- for (int k = 0 ; k < out .length / 2 ; k ++) {
176- byte temp = out [k ];
177- out [k ] = out [out .length - ( 1 + k ) ];
178- out [out .length - ( 1 + k ) ] = temp ;
175+ for (int i = 0 ; i < out .length / 2 ; i ++) {
176+ byte temp = out [i ];
177+ out [i ] = out [out .length - i - 1 ];
178+ out [out .length - i - 1 ] = temp ;
179179 }
180-
181180 return inPlace ? victim : Bytes .wrap (out );
182181 }
183182 }
@@ -200,13 +199,13 @@ public SortTransformer(Comparator<Byte> comparator) {
200199 public Bytes transform (Bytes victim , boolean inPlace ) {
201200
202201 if (comparator == null ) {
203- byte [] out = inPlace ? victim .array () : new byte [ victim .length ()] ;
202+ byte [] out = inPlace ? victim .internalArray () : victim .copy (). internalArray () ;
204203 Arrays .sort (out );
205204 return inPlace ? victim : Bytes .wrap (out );
206205 } else {
207206 //no in-place implementation with comparator
208207 List <Byte > list = victim .toList ();
209- Collections .sort (list );
208+ Collections .sort (list , comparator );
210209 return Bytes .from (list );
211210 }
212211 }
@@ -225,7 +224,7 @@ public ShuffleTransformer(Random random) {
225224
226225 @ Override
227226 public Bytes transform (Bytes victim , boolean inPlace ) {
228- byte [] out = inPlace ? victim .array () : new byte [ victim .length ()] ;
227+ byte [] out = inPlace ? victim .internalArray () : victim .copy (). internalArray () ;
229228 Util .shuffle (out , random );
230229 return inPlace ? victim : Bytes .wrap (out );
231230 }
0 commit comments