Skip to content

Commit 0aacc24

Browse files
committed
Rollback.
1 parent 568ecdb commit 0aacc24

File tree

1 file changed

+6
-11
lines changed

1 file changed

+6
-11
lines changed

src/main/java/com/stringcompressor/FourBitAsciiCompressor.java

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ public final byte[] compress(byte[] str) {
4242
encode(str, len);
4343

4444
final int halfLen = len >> 1;
45-
final byte[] compressed = new byte[halfLen + (len & 1) + (-len >>> 31)];
45+
final byte[] compressed = new byte[halfLen + (len & 1) + 1];
4646

4747
for (int i = 0; i < halfLen; i++)
4848
compressed[i] = (byte) (str[i << 1] << 4 | str[(i << 1) + 1]);
@@ -60,24 +60,19 @@ public final byte[] compress(byte[] str) {
6060
*/
6161
@Override
6262
public final byte[] decompress(final byte[] compressed) {
63-
final int compressedLen = compressed.length - 1;
64-
65-
if (compressedLen <= 0)
66-
return new byte[0];
67-
68-
int cLenMinus = compressed.length - 1;
69-
final int odd = compressed[cLenMinus];
70-
final int dLen = odd == 1 ? (--cLenMinus << 1) + 1 : cLenMinus << 1;
63+
int cLen = compressed.length - 1;
64+
final int odd = compressed[cLen];
65+
final int dLen = odd == 1 ? (--cLen << 1) + 1 : cLen << 1;
7166
final byte[] decompressed = new byte[dLen];
7267

73-
for (int i = 0, j = 0; i < cLenMinus; i++) {
68+
for (int i = 0, j = 0; i < cLen; i++) {
7469
final byte bite = compressed[i];
7570
decompressed[j++] = supportedCharset[(bite & 0xF0) >> 4];
7671
decompressed[j++] = supportedCharset[bite & 0x0F];
7772
}
7873

7974
if (odd == 1)
80-
decompressed[dLen - 1] = supportedCharset[compressed[cLenMinus]];
75+
decompressed[dLen - 1] = supportedCharset[compressed[cLen]];
8176

8277
return decompressed;
8378
}

0 commit comments

Comments
 (0)