MCPcopy
hub / github.com/go-sql-driver/mysql / zDecompress

Function zDecompress

compress.go:39–59  ·  view source on GitHub ↗
(src []byte, dst *bytes.Buffer)

Source from the content-addressed store, hash-verified

37}
38
39func zDecompress(src []byte, dst *bytes.Buffer) (int, error) {
40 br := bytes.NewReader(src)
41 var zr io.ReadCloser
42 var err error
43
44 if a := zrPool.Get(); a == nil {
45 if zr, err = zlib.NewReader(br); err != nil {
46 return 0, err
47 }
48 } else {
49 zr = a.(io.ReadCloser)
50 if err := zr.(zlib.Resetter).Reset(br, nil); err != nil {
51 return 0, err
52 }
53 }
54
55 n, _ := dst.ReadFrom(zr) // ignore err because zr.Close() will return it again.
56 err = zr.Close() // zr.Close() may return chuecksum error.
57 zrPool.Put(zr)
58 return int(n), err
59}
60
61func zCompress(src []byte, dst io.Writer) error {
62 zw := zwPool.Get().(*zlib.Writer)

Callers 1

readCompressedPacketMethod · 0.85

Calls 1

CloseMethod · 0.45

Tested by

no test coverage detected