diff options
author | 2022-09-28 18:30:40 +0100 | |
---|---|---|
committer | 2022-09-28 18:30:40 +0100 | |
commit | a156188b3eb5cb3da44aa1b7452265f5fa38a607 (patch) | |
tree | 7097fa48d56fbabc7c2c8750b1f3bc9321d71c0f /vendor/codeberg.org/gruf/go-kv/field_fmt.go | |
parent | [bugfix] Fix emphasis being added to emoji shortcodes with markdown parsing (... (diff) | |
download | gotosocial-a156188b3eb5cb3da44aa1b7452265f5fa38a607.tar.xz |
[chore] update dependencies, bump to Go 1.19.1 (#826)
* update dependencies, bump Go version to 1.19
* bump test image Go version
* update golangci-lint
* update gotosocial-drone-build
* sign
* linting, go fmt
* update swagger docs
* update swagger docs
* whitespace
* update contributing.md
* fuckin whoopsie doopsie
* linterino, linteroni
* fix followrequest test not starting processor
* fix other api/client tests not starting processor
* fix remaining tests where processor not started
* bump go-runners version
* don't check last-webfingered-at, processor may have updated this
* update swagger command
* update bun to latest version
* fix embed to work the same as before with new bun
Signed-off-by: kim <grufwub@gmail.com>
Co-authored-by: tsmethurst <tobi.smethurst@protonmail.com>
Diffstat (limited to 'vendor/codeberg.org/gruf/go-kv/field_fmt.go')
-rw-r--r-- | vendor/codeberg.org/gruf/go-kv/field_fmt.go | 33 |
1 files changed, 30 insertions, 3 deletions
diff --git a/vendor/codeberg.org/gruf/go-kv/field_fmt.go b/vendor/codeberg.org/gruf/go-kv/field_fmt.go index c62393fe0..fcdcc5e17 100644 --- a/vendor/codeberg.org/gruf/go-kv/field_fmt.go +++ b/vendor/codeberg.org/gruf/go-kv/field_fmt.go @@ -5,10 +5,18 @@ package kv import ( "fmt" + "sync" "codeberg.org/gruf/go-byteutil" ) +// bufPool is a memory pool of byte buffers. +var bufPool = sync.Pool{ + New: func() interface{} { + return &byteutil.Buffer{B: make([]byte, 0, 512)} + }, +} + // AppendFormat will append formatted format of Field to 'buf'. See .String() for details. func (f Field) AppendFormat(buf *byteutil.Buffer, vbose bool) { var fmtstr string @@ -17,9 +25,9 @@ func (f Field) AppendFormat(buf *byteutil.Buffer, vbose bool) { } else /* regular */ { fmtstr = `%+v` } - appendQuoteKey(buf, f.K) + AppendQuoteKey(buf, f.K) buf.WriteByte('=') - appendQuoteValue(buf, fmt.Sprintf(fmtstr, f.V)) + appendValuef(buf, fmtstr, f.V) } // Value returns the formatted value string of this Field. @@ -31,6 +39,25 @@ func (f Field) Value(vbose bool) string { fmtstr = `%+v` } buf := byteutil.Buffer{B: make([]byte, 0, bufsize/2)} - appendQuoteValue(&buf, fmt.Sprintf(fmtstr, f.V)) + appendValuef(&buf, fmtstr, f.V) return buf.String() } + +// appendValuef appends a quoted value string (formatted by fmt.Appendf) to 'buf'. +func appendValuef(buf *byteutil.Buffer, format string, args ...interface{}) { + // Write format string to a byte buffer + fmtbuf := bufPool.Get().(*byteutil.Buffer) + fmtbuf.B = fmt.Appendf(fmtbuf.B, format, args...) + + // Append quoted value to dst buffer + AppendQuoteValue(buf, fmtbuf.String()) + + // Drop overly large capacity buffers + if fmtbuf.Cap() > int(^uint16(0)) { + return + } + + // Replace buffer in pool + fmtbuf.Reset() + bufPool.Put(fmtbuf) +} |