From: tnclong Date: Tue, 18 Jun 2019 14:07:30 +0000 (+0800) Subject: text/template: avoid allocating a new common in copy X-Git-Tag: go1.14beta1~1352 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=4a4f752c3812d18ffcaa06624de1a29d4e9ab056;p=gostls13.git text/template: avoid allocating a new common in copy Template.New calls t.init, which allocates several items that are immediately rewritten by copy, so avoid the call to New Change-Id: I16c7cb001bbcd14cf547c1a2db2734a2f8214e7e Reviewed-on: https://go-review.googlesource.com/c/go/+/182757 Run-TryBot: Daniel Martí TryBot-Result: Gobot Gobot Reviewed-by: Daniel Martí --- diff --git a/src/text/template/template.go b/src/text/template/template.go index 1135d819b9..2c5ff013e3 100644 --- a/src/text/template/template.go +++ b/src/text/template/template.go @@ -110,12 +110,13 @@ func (t *Template) Clone() (*Template, error) { // copy returns a shallow copy of t, with common set to the argument. func (t *Template) copy(c *common) *Template { - nt := New(t.name) - nt.Tree = t.Tree - nt.common = c - nt.leftDelim = t.leftDelim - nt.rightDelim = t.rightDelim - return nt + return &Template{ + name: t.name, + Tree: t.Tree, + common: c, + leftDelim: t.leftDelim, + rightDelim: t.rightDelim, + } } // AddParseTree adds parse tree for template with given name and associates it with t.