mirror of
https://gitlab.com/pulsechaincom/prysm-pulse.git
synced 2025-01-07 18:21:20 +00:00
5b5cae693f
Events with just 1 argument fail before this change Former-commit-id: 69cbb51c56054208417e464dc6e46a94ccb3bbeb [formerly fbb03244929beb0ce8f9c607ce33d107e8319b89] Former-commit-id: 984154c1ba79f1fe8bf0106a604b2765ea312079
36 lines
732 B
Go
36 lines
732 B
Go
package fuse
|
|
|
|
import "unsafe"
|
|
|
|
// buffer provides a mechanism for constructing a message from
|
|
// multiple segments.
|
|
type buffer []byte
|
|
|
|
// alloc allocates size bytes and returns a pointer to the new
|
|
// segment.
|
|
func (w *buffer) alloc(size uintptr) unsafe.Pointer {
|
|
s := int(size)
|
|
if len(*w)+s > cap(*w) {
|
|
old := *w
|
|
*w = make([]byte, len(*w), 2*cap(*w)+s)
|
|
copy(*w, old)
|
|
}
|
|
l := len(*w)
|
|
*w = (*w)[:l+s]
|
|
return unsafe.Pointer(&(*w)[l])
|
|
}
|
|
|
|
// reset clears out the contents of the buffer.
|
|
func (w *buffer) reset() {
|
|
for i := range (*w)[:cap(*w)] {
|
|
(*w)[i] = 0
|
|
}
|
|
*w = (*w)[:0]
|
|
}
|
|
|
|
func newBuffer(extra uintptr) buffer {
|
|
const hdrSize = unsafe.Sizeof(outHeader{})
|
|
buf := make(buffer, hdrSize, hdrSize+extra)
|
|
return buf
|
|
}
|