diff --git a/java/src/main/java/io/nayuki/qrcodegen/BitBuffer.java b/java/src/main/java/io/nayuki/qrcodegen/BitBuffer.java index ccebe37..8b4254e 100644 --- a/java/src/main/java/io/nayuki/qrcodegen/BitBuffer.java +++ b/java/src/main/java/io/nayuki/qrcodegen/BitBuffer.java @@ -141,5 +141,13 @@ public final class BitBuffer implements Cloneable { dataCodewords[i >>> 3] |= getBit(i) << (7 - (i & 7)); return dataCodewords; } + + + // Add terminator and pad up to a byte if applicable + public void addTerminator(int dataCapacityBits) { + appendBits(0, Math.min(4, dataCapacityBits - bitLength())); + appendBits(0, (8 - bitLength() % 8) % 8); + assert bitLength() % 8 == 0; + } } diff --git a/java/src/main/java/io/nayuki/qrcodegen/QrCode.java b/java/src/main/java/io/nayuki/qrcodegen/QrCode.java index 7b85539..cebfbea 100644 --- a/java/src/main/java/io/nayuki/qrcodegen/QrCode.java +++ b/java/src/main/java/io/nayuki/qrcodegen/QrCode.java @@ -169,7 +169,7 @@ public final class QrCode { int dataCapacityBits = getNumDataCodewords(version, errorCorrectionLevel) * 8; assert bitBuffer.bitLength() <= dataCapacityBits; - addTerminator(bitBuffer, dataCapacityBits); + bitBuffer.addTerminator(dataCapacityBits); bitBuffer.addPad(dataCapacityBits); @@ -184,12 +184,6 @@ public final class QrCode { /*---- Private helper methods for encodeSegments ----*/ - // Add terminator and pad up to a byte if applicable - private static void addTerminator(BitBuffer bitBuffer, int dataCapacityBits) { - bitBuffer.appendBits(0, Math.min(4, dataCapacityBits - bitBuffer.bitLength())); - bitBuffer.appendBits(0, (8 - bitBuffer.bitLength() % 8) % 8); - assert bitBuffer.bitLength() % 8 == 0; - } // Concatenate all segments to create the data bit string private static BitBuffer segmentsToBitBuffer(List segments, int version) {