From 5ac2d4821f56531adb126159aafc36963deb13b3 Mon Sep 17 00:00:00 2001 From: Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> Date: Fri, 11 Nov 2022 22:34:40 +0300 Subject: fix ReadBitsToSlice logic v3 --- bitreader.go | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'bitreader.go') diff --git a/bitreader.go b/bitreader.go index e455d5d..2ea4d05 100644 --- a/bitreader.go +++ b/bitreader.go @@ -162,18 +162,21 @@ func (reader *ReaderType) TryReadBitsToSlice(bits int) []byte { 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 { + panic(err) + } + out[i] = byte(val) + } + break + } else { + val, err := reader.ReadBytes(1) if err != nil { panic(err) } out[i] = byte(val) - break - } - val, err := reader.ReadBytes(1) - if err != nil { - panic(err) } - out[i] = byte(val) } return out } -- cgit v1.2.3