]> Cypherpunks repositories - gostls13.git/commitdiff
encoding/json: make use of reflect.Type.{OverflowInt, OverflowUint}
authorJes Cok <xigua67damn@gmail.com>
Wed, 28 Feb 2024 23:50:37 +0000 (23:50 +0000)
committerGopher Robot <gobot@golang.org>
Thu, 29 Feb 2024 18:45:05 +0000 (18:45 +0000)
CL 567296 added {OverflowComplex, OverflowFloat, OverflowInt, OverflowUint}
to reflect.Type, this CL uses these methods to simplify code.

For #60427

Change-Id: I229aef9e4095a2f025afd782081f6c9e6d7710f3
GitHub-Last-Rev: c824e5a1b5547e2cc23142fbcf0d6dd59f0e8506
GitHub-Pull-Request: golang/go#66000
Reviewed-on: https://go-review.googlesource.com/c/go/+/567775
Reviewed-by: Carlos Amedee <carlos@golang.org>
Reviewed-by: Joseph Tsai <joetsai@digital-static.net>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Reviewed-by: Daniel Martí <mvdan@mvdan.cc>
Auto-Submit: Ian Lance Taylor <iant@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
src/encoding/json/decode.go

index bc1891f8ace304ee8c31323f1c32b16dfc7c01d3..e1bc9753b11361808a5c16f50db763202e4352c3 100644 (file)
@@ -776,7 +776,7 @@ func (d *decodeState) object(v reflect.Value) error {
                                case reflect.Int, reflect.Int8, reflect.Int16, reflect.Int32, reflect.Int64:
                                        s := string(key)
                                        n, err := strconv.ParseInt(s, 10, 64)
-                                       if err != nil || reflect.Zero(kt).OverflowInt(n) {
+                                       if err != nil || kt.OverflowInt(n) {
                                                d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: kt, Offset: int64(start + 1)})
                                                break
                                        }
@@ -785,7 +785,7 @@ func (d *decodeState) object(v reflect.Value) error {
                                case reflect.Uint, reflect.Uint8, reflect.Uint16, reflect.Uint32, reflect.Uint64, reflect.Uintptr:
                                        s := string(key)
                                        n, err := strconv.ParseUint(s, 10, 64)
-                                       if err != nil || reflect.Zero(kt).OverflowUint(n) {
+                                       if err != nil || kt.OverflowUint(n) {
                                                d.saveError(&UnmarshalTypeError{Value: "number " + s, Type: kt, Offset: int64(start + 1)})
                                                break
                                        }