Tweaked Java code to convert most explicit assertion checks to native assert statements, for compactness and because the code quality ensures that the checks shouldn't fail in normal usage.
This commit is contained in:
parent
d8d2da49e4
commit
0e2ecff58e
|
@ -128,8 +128,7 @@ public final class QrCode {
|
|||
if (version >= maxVersion) // All versions in the range could not fit the given data
|
||||
throw new IllegalArgumentException("Data too long");
|
||||
}
|
||||
if (dataUsedBits == -1)
|
||||
throw new AssertionError();
|
||||
assert dataUsedBits != -1;
|
||||
|
||||
// Increase the error correction level while the data still fits in the current version number
|
||||
for (Ecc newEcl : Ecc.values()) {
|
||||
|
@ -153,8 +152,7 @@ public final class QrCode {
|
|||
// Pad with alternate bytes until data capacity is reached
|
||||
for (int padByte = 0xEC; bb.bitLength() < dataCapacityBits; padByte ^= 0xEC ^ 0x11)
|
||||
bb.appendBits(padByte, 8);
|
||||
if (bb.bitLength() % 8 != 0)
|
||||
throw new AssertionError();
|
||||
assert bb.bitLength() % 8 == 0;
|
||||
|
||||
// Create the QR Code symbol
|
||||
return new QrCode(version, ecl, bb.getBytes(), mask);
|
||||
|
@ -354,8 +352,7 @@ public final class QrCode {
|
|||
rem = (rem << 1) ^ ((rem >>> 9) * 0x537);
|
||||
data = data << 10 | rem;
|
||||
data ^= 0x5412; // uint15
|
||||
if (data >>> 15 != 0)
|
||||
throw new AssertionError();
|
||||
assert data >>> 15 == 0;
|
||||
|
||||
// Draw first copy
|
||||
for (int i = 0; i <= 5; i++)
|
||||
|
@ -386,8 +383,7 @@ public final class QrCode {
|
|||
for (int i = 0; i < 12; i++)
|
||||
rem = (rem << 1) ^ ((rem >>> 11) * 0x1F25);
|
||||
int data = version << 12 | rem; // uint18
|
||||
if (data >>> 18 != 0)
|
||||
throw new AssertionError();
|
||||
assert data >>> 18 == 0;
|
||||
|
||||
// Draw two copies
|
||||
for (int i = 0; i < 18; i++) {
|
||||
|
@ -497,8 +493,7 @@ public final class QrCode {
|
|||
}
|
||||
}
|
||||
}
|
||||
if (i != data.length * 8)
|
||||
throw new AssertionError();
|
||||
assert i == data.length * 8;
|
||||
}
|
||||
|
||||
|
||||
|
@ -546,8 +541,7 @@ public final class QrCode {
|
|||
applyMask(i); // Undoes the mask due to XOR
|
||||
}
|
||||
}
|
||||
if (mask < 0 || mask > 7)
|
||||
throw new AssertionError();
|
||||
assert 0 <= mask && mask <= 7;
|
||||
drawFormatBits(mask); // Overwrite old format bits
|
||||
applyMask(mask); // Apply the final choice of mask
|
||||
return mask; // The caller shall assign this value to the final-declared field
|
||||
|
@ -837,16 +831,14 @@ public final class QrCode {
|
|||
// Returns the product of the two given field elements modulo GF(2^8/0x11D). The arguments and result
|
||||
// are unsigned 8-bit integers. This could be implemented as a lookup table of 256*256 entries of uint8.
|
||||
private static int multiply(int x, int y) {
|
||||
if (x >>> 8 != 0 || y >>> 8 != 0)
|
||||
throw new IllegalArgumentException("Byte out of range");
|
||||
assert x >>> 8 == 0 && y >>> 8 == 0;
|
||||
// Russian peasant multiplication
|
||||
int z = 0;
|
||||
for (int i = 7; i >= 0; i--) {
|
||||
z = (z << 1) ^ ((z >>> 7) * 0x11D);
|
||||
z ^= ((y >>> i) & 1) * x;
|
||||
}
|
||||
if (z >>> 8 != 0)
|
||||
throw new AssertionError();
|
||||
assert z >>> 8 == 0;
|
||||
return z;
|
||||
}
|
||||
|
||||
|
|
|
@ -393,8 +393,7 @@ public final class QrSegmentAdvanced {
|
|||
int j = ((bytes[i] & 0xFF) << 8) | (bytes[i + 1] & 0xFF);
|
||||
if (j == 0xFFFF)
|
||||
continue;
|
||||
if (UNICODE_TO_QR_KANJI[j] != -1)
|
||||
throw new AssertionError();
|
||||
assert UNICODE_TO_QR_KANJI[j] == -1;
|
||||
UNICODE_TO_QR_KANJI[j] = (short)(i / 2);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue