Refactored a Java method to reduce indirection.

This commit is contained in:
Project Nayuki 2018-08-22 18:33:28 +00:00
parent bf62065700
commit a2977e6351
2 changed files with 6 additions and 7 deletions

View File

@ -110,15 +110,14 @@ public final class BitBuffer implements Cloneable {
/** /**
* Appends the bit data of the specified segment to this bit buffer. * Appends the specified bit buffer to this bit buffer.
* @param seg the segment whose data to append (not {@code null}) * @param bb the bit buffer whose data to append (not {@code null})
* @throws NullPointerException if the segment is {@code null} * @throws NullPointerException if the bit buffer is {@code null}
* @throws IllegalStateException if appending the data * @throws IllegalStateException if appending the data
* would make bitLength exceed Integer.MAX_VALUE * would make bitLength exceed Integer.MAX_VALUE
*/ */
public void appendData(QrSegment seg) { public void appendData(BitBuffer bb) {
Objects.requireNonNull(seg); Objects.requireNonNull(bb);
BitBuffer bb = seg.data;
if (Integer.MAX_VALUE - bitLength < bb.bitLength) if (Integer.MAX_VALUE - bitLength < bb.bitLength)
throw new IllegalStateException("Maximum length reached"); throw new IllegalStateException("Maximum length reached");
for (int i = 0; i < bb.bitLength; i++, bitLength++) // Append bit by bit for (int i = 0; i < bb.bitLength; i++, bitLength++) // Append bit by bit

View File

@ -142,7 +142,7 @@ public final class QrCode {
for (QrSegment seg : segs) { for (QrSegment seg : segs) {
bb.appendBits(seg.mode.modeBits, 4); bb.appendBits(seg.mode.modeBits, 4);
bb.appendBits(seg.numChars, seg.mode.numCharCountBits(version)); bb.appendBits(seg.numChars, seg.mode.numCharCountBits(version));
bb.appendData(seg); bb.appendData(seg.data);
} }
// Add terminator and pad up to a byte if applicable // Add terminator and pad up to a byte if applicable