From d40e7bb1744507be421b80c19372b9411c9856b4 Mon Sep 17 00:00:00 2001 From: Matthew Dempsky Date: Tue, 1 Mar 2022 12:58:20 -0800 Subject: [PATCH] internal/pkgbits: add version number Especially once this code gets copied into x/tools, we need a way to evolve the file format, so add an explicit version number. Change-Id: I9cc2e357c3ca3f07fd8d0c0ba4e4a95f89edeac6 Reviewed-on: https://go-review.googlesource.com/c/go/+/388914 Trust: Matthew Dempsky Run-TryBot: Matthew Dempsky TryBot-Result: Gopher Robot Reviewed-by: Keith Randall --- src/internal/pkgbits/decoder.go | 4 ++++ src/internal/pkgbits/encoder.go | 2 ++ 2 files changed, 6 insertions(+) diff --git a/src/internal/pkgbits/decoder.go b/src/internal/pkgbits/decoder.go index 537d48d899..9c8ad446ca 100644 --- a/src/internal/pkgbits/decoder.go +++ b/src/internal/pkgbits/decoder.go @@ -37,6 +37,10 @@ func NewPkgDecoder(pkgPath, input string) PkgDecoder { r := strings.NewReader(input) + var version uint32 + assert(binary.Read(r, binary.LittleEndian, &version) == nil) + assert(version == 0) + assert(binary.Read(r, binary.LittleEndian, pr.elemEndsEnds[:]) == nil) pr.elemEnds = make([]uint32, pr.elemEndsEnds[len(pr.elemEndsEnds)-1]) diff --git a/src/internal/pkgbits/encoder.go b/src/internal/pkgbits/encoder.go index 87ef50ed8b..820c707940 100644 --- a/src/internal/pkgbits/encoder.go +++ b/src/internal/pkgbits/encoder.go @@ -35,6 +35,8 @@ func (pw *PkgEncoder) DumpTo(out io.Writer) { assert(binary.Write(out, binary.LittleEndian, x) == nil) } + writeUint32(0) // version + var sum uint32 for _, elems := range &pw.elems { sum += uint32(len(elems)) -- 2.50.0