Skip to content

Commit 720598c

Browse files
committed
Bit writers' align() now does nothing if writer is already aligned
This is consistent with readers' behaviour.
1 parent b5bc3c9 commit 720598c

4 files changed

Lines changed: 8 additions & 2 deletions

File tree

Sources/LsbBitWriter.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ public final class LsbBitWriter: BitWriter {
7272
- Note: If writer is already aligned, then does nothing.
7373
*/
7474
public func align() {
75+
guard self.bitMask != 1
76+
else { return }
77+
7578
self.data.append(self.currentByte)
7679
self.currentByte = 0
7780
self.bitMask = 1

Sources/MsbBitWriter.swift

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,9 @@ public final class MsbBitWriter: BitWriter {
7272
- Note: If writer is already aligned, then does nothing.
7373
*/
7474
public func align() {
75+
guard self.bitMask != 128
76+
else { return }
77+
7578
self.data.append(self.currentByte)
7679
self.currentByte = 0
7780
self.bitMask = 128

Tests/BitByteDataTests/LsbBitWriterTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ class LsbBitWriterTests: XCTestCase {
5252
let bitWriter = LsbBitWriter()
5353

5454
bitWriter.align()
55-
XCTAssertEqual(bitWriter.data, Data(bytes: [0]))
55+
XCTAssertEqual(bitWriter.data, Data())
5656
XCTAssertTrue(bitWriter.isAligned)
5757
}
5858

Tests/BitByteDataTests/MsbBitWriterTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ class MsbBitWriterTests: XCTestCase {
5555
let bitWriter = MsbBitWriter()
5656

5757
bitWriter.align()
58-
XCTAssertEqual(bitWriter.data, Data(bytes: [0]))
58+
XCTAssertEqual(bitWriter.data, Data())
5959
XCTAssertTrue(bitWriter.isAligned)
6060
}
6161

0 commit comments

Comments
 (0)