Example #1
0
File: write.go Project: nilium/dagr
func getBuffer(w io.Writer) *tempBuffer {
	w = getWriter(w)
	// If either is nil, something will eventually panic, so we might as well do it here
	switch w := w.(type) {
	case *bytes.Buffer:
		if w == nil {
			panic("dagr: getBuffer: target *bytes.Buffer is nil")
		}
		return &tempBuffer{w, false, int64(w.Len())}
	}

	if b, ok := tempBuffers.Get().(*tempBuffer); ok {
		return b
	}

	// Bizzaro case: tempBuffers.New didn't work? Something should've panicked by now.
	return allocMinimumBuffer()
}