mirror of https://github.com/golang/go.git
html/template: fix panic on Clone
Fixes #3281 R=golang-dev, r CC=golang-dev https://golang.org/cl/5819044
This commit is contained in:
parent
d6ad6f0e61
commit
5f32c8b88b
|
|
@ -113,3 +113,10 @@ func TestClone(t *testing.T) {
|
|||
t.Errorf("t3: got %q want %q", got, want)
|
||||
}
|
||||
}
|
||||
|
||||
// This used to crash; http://golang.org/issue/3281
|
||||
func TestCloneCrash(t *testing.T) {
|
||||
t1 := New("all")
|
||||
Must(t1.New("t1").Parse(`{{define "foo"}}foo{{end}}`))
|
||||
t1.Clone()
|
||||
}
|
||||
|
|
|
|||
|
|
@ -160,9 +160,11 @@ func (t *Template) Clone() (*Template, error) {
|
|||
if src == nil || src.escaped {
|
||||
return nil, fmt.Errorf("html/template: cannot Clone %q after it has executed", t.Name())
|
||||
}
|
||||
x.Tree = &parse.Tree{
|
||||
Name: x.Tree.Name,
|
||||
Root: x.Tree.Root.CopyList(),
|
||||
if x.Tree != nil {
|
||||
x.Tree = &parse.Tree{
|
||||
Name: x.Tree.Name,
|
||||
Root: x.Tree.Root.CopyList(),
|
||||
}
|
||||
}
|
||||
ret.set[name] = &Template{
|
||||
false,
|
||||
|
|
|
|||
Loading…
Reference in New Issue