mirror of
https://github.com/gohugoio/hugo.git
synced 2024-11-21 20:46:30 -05:00
markup/goldmark: Fix data race in the hugocontext wrapper
The window for this to happen is very small, but it has been reported by Go's race detector (-race flag) in a tests once.
This commit is contained in:
parent
2d75f539e1
commit
509ab08c1b
3 changed files with 4 additions and 4 deletions
|
@ -175,7 +175,7 @@ func (pco *pageContentOutput) RenderShortcodes(ctx context.Context) (template.HT
|
||||||
// This content will be parsed and rendered by Goldmark.
|
// This content will be parsed and rendered by Goldmark.
|
||||||
// Wrap it in a special Hugo markup to assign the correct Page from
|
// Wrap it in a special Hugo markup to assign the correct Page from
|
||||||
// the stack.
|
// the stack.
|
||||||
c = hugocontext.Wrap(c, pco.po.p.pid)
|
return template.HTML(hugocontext.Wrap(c, pco.po.p.pid)), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
return helpers.BytesToHTML(c), nil
|
return helpers.BytesToHTML(c), nil
|
||||||
|
|
|
@ -34,7 +34,7 @@ func New() goldmark.Extender {
|
||||||
|
|
||||||
// Wrap wraps the given byte slice in a Hugo context that used to determine the correct Page
|
// Wrap wraps the given byte slice in a Hugo context that used to determine the correct Page
|
||||||
// in .RenderShortcodes.
|
// in .RenderShortcodes.
|
||||||
func Wrap(b []byte, pid uint64) []byte {
|
func Wrap(b []byte, pid uint64) string {
|
||||||
buf := bufferpool.GetBuffer()
|
buf := bufferpool.GetBuffer()
|
||||||
defer bufferpool.PutBuffer(buf)
|
defer bufferpool.PutBuffer(buf)
|
||||||
buf.Write(prefix)
|
buf.Write(prefix)
|
||||||
|
@ -45,7 +45,7 @@ func Wrap(b []byte, pid uint64) []byte {
|
||||||
buf.Write(b)
|
buf.Write(b)
|
||||||
buf.Write(prefix)
|
buf.Write(prefix)
|
||||||
buf.Write(closingDelimAndNewline)
|
buf.Write(closingDelimAndNewline)
|
||||||
return buf.Bytes()
|
return buf.String()
|
||||||
}
|
}
|
||||||
|
|
||||||
var kindHugoContext = ast.NewNodeKind("HugoContext")
|
var kindHugoContext = ast.NewNodeKind("HugoContext")
|
||||||
|
|
|
@ -24,7 +24,7 @@ func TestWrap(t *testing.T) {
|
||||||
|
|
||||||
b := []byte("test")
|
b := []byte("test")
|
||||||
|
|
||||||
c.Assert(string(Wrap(b, 42)), qt.Equals, "{{__hugo_ctx pid=42}}\ntest{{__hugo_ctx/}}\n")
|
c.Assert(Wrap(b, 42), qt.Equals, "{{__hugo_ctx pid=42}}\ntest{{__hugo_ctx/}}\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
func BenchmarkWrap(b *testing.B) {
|
func BenchmarkWrap(b *testing.B) {
|
||||||
|
|
Loading…
Reference in a new issue