diff options
| author | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2022-11-11 22:23:58 +0300 |
|---|---|---|
| committer | Arda Serdar Pektezol <1669855+pektezol@users.noreply.github.com> | 2022-11-11 22:23:58 +0300 |
| commit | e9016d3529ba073872234d7869648d4672d76ee5 (patch) | |
| tree | 5a157a4e5a8f8b8be6790b44e2d9ee48c9217e56 /bitreader.go | |
| parent | fix ReadBitsToSlice logic (diff) | |
| download | bitreader-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.go | 17 |
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 | } |