diff --git a/tools/utils/base85/base85.go b/tools/utils/base85/base85.go index 9d71e6106..11cfcff7d 100644 --- a/tools/utils/base85/base85.go +++ b/tools/utils/base85/base85.go @@ -26,7 +26,7 @@ var encode = [85]byte{ 0x60, 0x7B, 0x7C, 0x7D, 0x7E, } -var decoder_array = sync.OnceValue(func() [256]byte { +var decoder_array = sync.OnceValue(func() *[256]byte { var decode = [256]byte{ 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, @@ -48,7 +48,7 @@ var decoder_array = sync.OnceValue(func() [256]byte { for i := 0; i < len(encode); i++ { decode[encode[i]] = byte(i) } - return decode + return &decode }) @@ -169,14 +169,14 @@ func Decode(dst, src []byte) (int, error) { decode := decoder_array() for len(src) > 0 { if len(src) < 5 { - w, err := decodeChunk(&decode, dst, src) + w, err := decodeChunk(decode, dst, src) if err > 0 { return t, CorruptInputError(f + err) } return t + w, nil } - _, err := decodeChunk(&decode, dst[:4], src[:5]) + _, err := decodeChunk(decode, dst[:4], src[:5]) if err > 0 { return t, CorruptInputError(f + err) } else { diff --git a/tools/utils/base85/base85_test.go b/tools/utils/base85/base85_test.go index 86e4c3257..92023e659 100644 --- a/tools/utils/base85/base85_test.go +++ b/tools/utils/base85/base85_test.go @@ -23,7 +23,7 @@ func TestBase85(t *testing.T) { t.Fatalf("Encoded len for %#v wrong: %d != %d", x, el, EncodedLen(len(a))) } encoded := dst[:el] - dl, bad_idx := decodeChunk(&decode, dst2[:], encoded) + dl, bad_idx := decodeChunk(decode, dst2[:], encoded) if bad_idx != 0 { t.Fatalf("Decode for %#v returned bad data at: %d (%#v)", x, bad_idx, encoded) }