MCPcopy
hub / github.com/valyala/fasthttp / copyBuffer

Function copyBuffer

http.go:2609–2638  ·  view source on GitHub ↗

copyBuffer is rewritten from io.copyBuffer. We do not check if src has a WriteTo method, if dst has a ReadFrom method, or if buf is empty.

(dst io.Writer, src io.Reader, buf []byte)

Source from the content-addressed store, hash-verified

2607// copyBuffer is rewritten from io.copyBuffer. We do not check if src has a
2608// WriteTo method, if dst has a ReadFrom method, or if buf is empty.
2609func copyBuffer(dst io.Writer, src io.Reader, buf []byte) (written int64, err error) {
2610 for {
2611 nr, er := src.Read(buf)
2612 if nr > 0 {
2613 nw, ew := dst.Write(buf[0:nr])
2614 if nw < 0 || nr < nw {
2615 nw = 0
2616 if ew == nil {
2617 ew = errors.New("invalid write result")
2618 }
2619 }
2620 written += int64(nw)
2621 if ew != nil {
2622 err = ew
2623 break
2624 }
2625 if nr != nw {
2626 err = io.ErrShortWrite
2627 break
2628 }
2629 }
2630 if er != nil {
2631 if er != io.EOF {
2632 err = er
2633 }
2634 break
2635 }
2636 }
2637 return written, err
2638}
2639
2640var copyBufPool = sync.Pool{
2641 New: func() any {

Callers 1

copyZeroAllocFunction · 0.85

Calls 2

WriteMethod · 0.65
ReadMethod · 0.45

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…