Fix Palette bugs reported by patyhank

This commit is contained in:
Tnze
2022-06-14 13:37:24 +08:00
parent 44703ce940
commit 33579d448e
2 changed files with 13 additions and 1 deletions

View File

@ -182,3 +182,15 @@ func (b *BitStorage) WriteTo(w io.Writer) (int64, error) {
}
return n, nil
}
func (b *BitStorage) Fix(bits int) error {
b.mask = 1<<bits - 1
b.bits = bits
b.valuesPerLong = 64 / bits
// check data length
dataLen := calcBitStorageSize(bits, b.length)
if l := len(b.data); l != dataLen {
return newBitStorageErr{ArrlLen: l, WantLen: dataLen}
}
return nil
}

View File

@ -150,7 +150,7 @@ func (p *PaletteContainer[T]) ReadFrom(r io.Reader) (n int64, err error) {
if err != nil {
return n, err
}
return n, nil
return n, p.data.Fix(int(nBits))
}
func (p *PaletteContainer[T]) WriteTo(w io.Writer) (n int64, err error) {