aboutsummaryrefslogtreecommitdiff
path: root/bitreader.go
diff options
context:
space:
mode:
authorArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2022-11-11 22:23:58 +0300
committerArda Serdar Pektezol <1669855+pektezol@users.noreply.github.com>2022-11-11 22:23:58 +0300
commite9016d3529ba073872234d7869648d4672d76ee5 (patch)
tree5a157a4e5a8f8b8be6790b44e2d9ee48c9217e56 /bitreader.go
parentfix ReadBitsToSlice logic (diff)
downloadbitreader-1.2.6.tar.gz
bitreader-1.2.6.tar.bz2
bitreader-1.2.6.zip
fix ReadBitsToSlice logic v2v1.2.6
Diffstat (limited to 'bitreader.go')
-rw-r--r--bitreader.go17
1 files changed, 10 insertions, 7 deletions
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) {
327 out := make([]byte, bytes) 327 out := make([]byte, bytes)
328 for i := 0; i < bytes; i++ { 328 for i := 0; i < bytes; i++ {
329 if i == bytes-1 { // Not enough to fill a whole byte 329 if i == bytes-1 { // Not enough to fill a whole byte
330 val, err := reader.ReadBits(bits % 8) 330 if bits%8 != 0 {
331 val, err := reader.ReadBits(bits % 8)
332 if err != nil {
333 return out, err
334 }
335 out[i] = byte(val)
336 }
337 break
338 } else {
339 val, err := reader.ReadBytes(1)
331 if err != nil { 340 if err != nil {
332 return out, err 341 return out, err
333 } 342 }
334 out[i] = byte(val) 343 out[i] = byte(val)
335 break
336 } 344 }
337 val, err := reader.ReadBytes(1)
338 if err != nil {
339 return out, err
340 }
341 out[i] = byte(val)
342 } 345 }
343 return out, nil 346 return out, nil
344} 347}