pkg/pools: Use pool for strings.Builder everywhere

This commit is contained in:
Tom Wiesing 2023-01-24 10:52:15 +01:00
parent 8af2213d5a
commit a63bb2f669
No known key found for this signature in database
7 changed files with 44 additions and 25 deletions

View file

@ -7,10 +7,10 @@ import (
"html/template"
"net/http"
"reflect"
"strings"
"time"
"github.com/FAU-CDI/wisski-distillery/pkg/httpx"
"github.com/FAU-CDI/wisski-distillery/pkg/pools"
"github.com/gorilla/csrf"
"github.com/rs/zerolog"
)
@ -159,7 +159,9 @@ func (ctx *tContext[C]) renderSafe(name string, t *template.Template, c any) (te
}
value, err, panicked := func() (value template.HTML, err error, panicked bool) {
var builder strings.Builder
// get a builder
builder := pools.GetBuilder()
defer pools.ReleaseBuilder(builder)
defer func() {
if panicked {
@ -173,7 +175,7 @@ func (ctx *tContext[C]) renderSafe(name string, t *template.Template, c any) (te
}()
panicked = true
err = t.Execute(&builder, c)
err = t.Execute(builder, c)
panicked = false
if err != nil {