From: Matthew Dempsky Date: Tue, 1 Mar 2022 20:58:20 +0000 (-0800) Subject: internal/pkgbits: add version number X-Git-Tag: go1.19beta1~1206 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=d40e7bb1744507be421b80c19372b9411c9856b4;p=gostls13.git 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 --- 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))