From: cuiweixie Date: Tue, 27 Sep 2022 16:29:30 +0000 (+0800) Subject: encoding/xml: use bytes.Clone X-Git-Tag: go1.20rc1~881 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=09919ac3396f1de63dd5556758ac2dd10ecb9b9f;p=gostls13.git encoding/xml: use bytes.Clone Change-Id: I3218b1e3f8869f579facddb29471df13c835dc66 Reviewed-on: https://go-review.googlesource.com/c/go/+/435281 TryBot-Result: Gopher Robot Reviewed-by: Ian Lance Taylor Run-TryBot: Dmitri Shuralyov Reviewed-by: Dmitri Shuralyov Auto-Submit: Dmitri Shuralyov --- diff --git a/src/encoding/xml/xml.go b/src/encoding/xml/xml.go index 3459a8604f..50a91a897f 100644 --- a/src/encoding/xml/xml.go +++ b/src/encoding/xml/xml.go @@ -80,21 +80,15 @@ type EndElement struct { // the characters they represent. type CharData []byte -func makeCopy(b []byte) []byte { - b1 := make([]byte, len(b)) - copy(b1, b) - return b1 -} - // Copy creates a new copy of CharData. -func (c CharData) Copy() CharData { return CharData(makeCopy(c)) } +func (c CharData) Copy() CharData { return CharData(bytes.Clone(c)) } // A Comment represents an XML comment of the form . // The bytes do not include the comment markers. type Comment []byte // Copy creates a new copy of Comment. -func (c Comment) Copy() Comment { return Comment(makeCopy(c)) } +func (c Comment) Copy() Comment { return Comment(bytes.Clone(c)) } // A ProcInst represents an XML processing instruction of the form type ProcInst struct { @@ -104,7 +98,7 @@ type ProcInst struct { // Copy creates a new copy of ProcInst. func (p ProcInst) Copy() ProcInst { - p.Inst = makeCopy(p.Inst) + p.Inst = bytes.Clone(p.Inst) return p } @@ -113,7 +107,7 @@ func (p ProcInst) Copy() ProcInst { type Directive []byte // Copy creates a new copy of Directive. -func (d Directive) Copy() Directive { return Directive(makeCopy(d)) } +func (d Directive) Copy() Directive { return Directive(bytes.Clone(d)) } // CopyToken returns a copy of a Token. func CopyToken(t Token) Token {