Change-Id: I66aad199884cffd51946f53f01580a3a353f5c97
Reviewed-on: https://go-review.googlesource.com/c/go/+/435280
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Dmitri Shuralyov <dmitshur@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Meng Zhuo <mzh@golangcn.org>
package sql
import (
+ "bytes"
"database/sql/driver"
"errors"
"fmt"
if d == nil {
return errNilPtr
}
- *d = cloneBytes(s)
+ *d = bytes.Clone(s)
return nil
case *[]byte:
if d == nil {
return errNilPtr
}
- *d = cloneBytes(s)
+ *d = bytes.Clone(s)
return nil
case *RawBytes:
if d == nil {
if sv.IsValid() && sv.Type().AssignableTo(dv.Type()) {
switch b := src.(type) {
case []byte:
- dv.Set(reflect.ValueOf(cloneBytes(b)))
+ dv.Set(reflect.ValueOf(bytes.Clone(b)))
default:
dv.Set(sv)
}
return err
}
-func cloneBytes(b []byte) []byte {
- if b == nil {
- return nil
- }
- c := make([]byte, len(b))
- copy(c, b)
- return c
-}
-
func asString(src any) string {
switch v := src.(type) {
case string: