diff options
| author | 2023-05-29 13:54:05 +0100 | |
|---|---|---|
| committer | 2023-05-29 13:54:05 +0100 | |
| commit | e50b22853977c9bdcd04efac1bf8c0af41304913 (patch) | |
| tree | 142c6fecfbd39346737f96f87b659cb5ed1525e8 /vendor/github.com/ulule/limiter/v3/internal/bytebuffer | |
| parent | [chore]: Bump github.com/stretchr/testify from 1.8.2 to 1.8.3 (#1842) (diff) | |
| download | gotosocial-e50b22853977c9bdcd04efac1bf8c0af41304913.tar.xz | |
[chore]: Bump github.com/ulule/limiter/v3 from 3.11.1 to 3.11.2 (#1841)
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Diffstat (limited to 'vendor/github.com/ulule/limiter/v3/internal/bytebuffer')
| -rw-r--r-- | vendor/github.com/ulule/limiter/v3/internal/bytebuffer/pool.go | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/vendor/github.com/ulule/limiter/v3/internal/bytebuffer/pool.go b/vendor/github.com/ulule/limiter/v3/internal/bytebuffer/pool.go deleted file mode 100644 index 5e761ad13..000000000 --- a/vendor/github.com/ulule/limiter/v3/internal/bytebuffer/pool.go +++ /dev/null @@ -1,58 +0,0 @@ -package bytebuffer - -import ( - "sync" - "unsafe" -) - -// ByteBuffer is a wrapper around a slice to reduce memory allocation while handling blob of data. -type ByteBuffer struct { - blob []byte -} - -// New creates a new ByteBuffer instance. -func New() *ByteBuffer { - entry := bufferPool.Get().(*ByteBuffer) - entry.blob = entry.blob[:0] - return entry -} - -// Bytes returns the content buffer. -func (buffer *ByteBuffer) Bytes() []byte { - return buffer.blob -} - -// String returns the content buffer. -func (buffer *ByteBuffer) String() string { - // Copied from strings.(*Builder).String - return *(*string)(unsafe.Pointer(&buffer.blob)) // nolint: gosec -} - -// Concat appends given arguments to blob content -func (buffer *ByteBuffer) Concat(args ...string) { - for i := range args { - buffer.blob = append(buffer.blob, args[i]...) - } -} - -// Close recycles underlying resources of encoder. -func (buffer *ByteBuffer) Close() { - // Proper usage of a sync.Pool requires each entry to have approximately - // the same memory cost. To obtain this property when the stored type - // contains a variably-sized buffer, we add a hard limit on the maximum buffer - // to place back in the pool. - // - // See https://golang.org/issue/23199 - if buffer != nil && cap(buffer.blob) < (1<<16) { - bufferPool.Put(buffer) - } -} - -// A byte buffer pool to reduce memory allocation pressure. -var bufferPool = &sync.Pool{ - New: func() interface{} { - return &ByteBuffer{ - blob: make([]byte, 0, 1024), - } - }, -} |
