From 4a4f752c3812d18ffcaa06624de1a29d4e9ab056 Mon Sep 17 00:00:00 2001 From: tnclong Date: Tue, 18 Jun 2019 22:07:30 +0800 Subject: [PATCH] text/template: avoid allocating a new common in copy MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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í --- src/text/template/template.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) 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. -- 2.50.0