Skip to content

Commit d0a73e0

Browse files
committed
QR Code: simplify addFormatInfoEval(), fixes #88
1 parent 09fe2ac commit d0a73e0

File tree

1 file changed

+19
-15
lines changed

1 file changed

+19
-15
lines changed

src/main/java/uk/org/okapibarcode/backend/QrCode.java

+19-15
Original file line numberDiff line numberDiff line change
@@ -1398,37 +1398,39 @@ private static int applyBitmask(int[] grid, int size, EccLevel ecc_level, String
13981398
/** Adds format information to eval. */
13991399
private static void addFormatInfoEval(byte[] eval, int size, EccLevel ecc_level, int pattern) {
14001400

1401-
int format = pattern;
1401+
int format;
14021402
int seq;
14031403
int i;
14041404

14051405
switch(ecc_level) {
1406-
case L: format |= 0x08; break;
1407-
case Q: format |= 0x18; break;
1408-
case H: format |= 0x10; break;
1406+
case L: format = pattern | 0x08; break;
1407+
case Q: format = pattern | 0x18; break;
1408+
case H: format = pattern | 0x10; break;
1409+
case M: format = pattern; break;
1410+
default: throw new OkapiInternalException("Unknown ECC level: " + ecc_level);
14091411
}
14101412

14111413
seq = QR_ANNEX_C[format];
14121414

14131415
for (i = 0; i < 6; i++) {
1414-
eval[(i * size) + 8] = (byte) ((((seq >> i) & 0x01) != 0) ? (0x01 >> pattern) : 0x00);
1416+
eval[(i * size) + 8] = (byte) ((seq >> i) & 0x01);
14151417
}
14161418

14171419
for (i = 0; i < 8; i++) {
1418-
eval[(8 * size) + (size - i - 1)] = (byte) ((((seq >> i) & 0x01) != 0) ? (0x01 >> pattern) : 0x00);
1420+
eval[(8 * size) + (size - i - 1)] = (byte) ((seq >> i) & 0x01);
14191421
}
14201422

14211423
for (i = 0; i < 6; i++) {
1422-
eval[(8 * size) + (5 - i)] = (byte) ((((seq >> (i + 9)) & 0x01) != 0) ? (0x01 >> pattern) : 0x00);
1424+
eval[(8 * size) + (5 - i)] = (byte) ((seq >> (i + 9)) & 0x01);
14231425
}
14241426

14251427
for (i = 0; i < 7; i++) {
1426-
eval[(((size - 7) + i) * size) + 8] = (byte) ((((seq >> (i + 8)) & 0x01) != 0) ? (0x01 >> pattern) : 0x00);
1428+
eval[(((size - 7) + i) * size) + 8] = (byte) ((seq >> (i + 8)) & 0x01);
14271429
}
14281430

1429-
eval[(7 * size) + 8] = (byte) ((((seq >> 6) & 0x01) != 0) ? (0x01 >> pattern) : 0x00);
1430-
eval[(8 * size) + 8] = (byte) ((((seq >> 7) & 0x01) != 0) ? (0x01 >> pattern) : 0x00);
1431-
eval[(8 * size) + 7] = (byte) ((((seq >> 8) & 0x01) != 0) ? (0x01 >> pattern) : 0x00);
1431+
eval[(7 * size) + 8] = (byte) ((seq >> 6) & 0x01);
1432+
eval[(8 * size) + 8] = (byte) ((seq >> 7) & 0x01);
1433+
eval[(8 * size) + 7] = (byte) ((seq >> 8) & 0x01);
14321434
}
14331435

14341436
private static int evaluate(byte[] eval, int size, int pattern, int best, StringBuilder encodeInfo) {
@@ -1642,14 +1644,16 @@ private static int evaluate(byte[] eval, int size, int pattern, int best, String
16421644
/* Adds format information to grid. */
16431645
private static void addFormatInfo(int[] grid, int size, EccLevel ecc_level, int pattern) {
16441646

1645-
int format = pattern;
1647+
int format;
16461648
int seq;
16471649
int i;
16481650

16491651
switch(ecc_level) {
1650-
case L: format |= 0x08; break;
1651-
case Q: format |= 0x18; break;
1652-
case H: format |= 0x10; break;
1652+
case L: format = pattern | 0x08; break;
1653+
case Q: format = pattern | 0x18; break;
1654+
case H: format = pattern | 0x10; break;
1655+
case M: format = pattern; break;
1656+
default: throw new OkapiInternalException("Unknown ECC level: " + ecc_level);
16531657
}
16541658

16551659
seq = QR_ANNEX_C[format];

0 commit comments

Comments
 (0)