From e9016d3529ba073872234d7869648d4672d76ee5 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Fri, 11 Nov 2022 22:23:58 +0300 Subject: fix ReadBitsToSlice logic v2 --- bitreader.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'bitreader.go') diff --git a/bitreader.go b/bitreader.go index 267ff5e..e455d5d 100644 --- a/bitreader.go +++ b/bitreader.go @@ -327,18 +327,21 @@ func (reader *ReaderType) ReadBitsToSlice(bits int) ([]byte, error) { out := make([]byte, bytes) for i := 0; i < bytes; i++ { if i == bytes-1 { // Not enough to fill a whole byte - val, err := reader.ReadBits(bits % 8) + if bits%8 != 0 { + val, err := reader.ReadBits(bits % 8) + if err != nil { + return out, err + } + out[i] = byte(val) + } + break + } else { + val, err := reader.ReadBytes(1) if err != nil { return out, err } out[i] = byte(val) - break } - val, err := reader.ReadBytes(1) - if err != nil { - return out, err - } - out[i] = byte(val) } return out, nil } -- cgit v1.2.3