MCPcopy
hub / github.com/coocood/freecache / Resize

Method Resize

ringbuf.go:219–239  ·  view source on GitHub ↗
(newSize int)

Source from the content-addressed store, hash-verified

217}
218
219func (rb *RingBuf) Resize(newSize int) {
220 if len(rb.data) == newSize {
221 return
222 }
223 newData := make([]byte, newSize)
224 var offset int
225 if rb.end-rb.begin == int64(len(rb.data)) {
226 offset = rb.index
227 }
228 if int(rb.end-rb.begin) > newSize {
229 discard := int(rb.end-rb.begin) - newSize
230 offset = (offset + discard) % len(rb.data)
231 rb.begin = rb.end - int64(newSize)
232 }
233 n := copy(newData, rb.data[offset:])
234 if n < newSize {
235 copy(newData[n:], rb.data[:offset])
236 }
237 rb.data = newData
238 rb.index = 0
239}
240
241func (rb *RingBuf) Skip(length int64) {
242 rb.end += length

Callers 1

TestRingBufFunction · 0.95

Calls

no outgoing calls

Tested by 1

TestRingBufFunction · 0.76