diff options
| author | Cuong Manh Le <cuong.manhle.vn@gmail.com> | 2021-02-17 15:14:21 +0700 |
|---|---|---|
| committer | Cuong Manh Le <cuong.manhle.vn@gmail.com> | 2021-02-23 06:01:29 +0000 |
| commit | e52149822b54811cedaaa87013de3fa4bc634e95 (patch) | |
| tree | 34bdc306bf2c00c662add4a459ea5dcff0e4d670 /src/runtime/mfinal.go | |
| parent | 86deb459de6a309503aa445a7d686bd139354e5e (diff) | |
| download | go-e52149822b54811cedaaa87013de3fa4bc634e95.tar.xz | |
cmd/compile: simplify assert{E,I}2I{,2} calling conventions
This CL rebases CL 273694 on top of master with @mdempsky's permission.
For assertE2I and assertI2I, there's no need to pass through the
interface's data pointer: it's always going to come back unmodified.
For assertE2I2 and assertI2I2, there's no need for an extra bool
result parameter: it's redundant with testing the returned interface
value for nil.
Change-Id: Ic92d4409ad381952f875d3d74b8cf11c32702fa6
Reviewed-on: https://go-review.googlesource.com/c/go/+/292892
Trust: Cuong Manh Le <cuong.manhle.vn@gmail.com>
Run-TryBot: Cuong Manh Le <cuong.manhle.vn@gmail.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/runtime/mfinal.go')
| -rw-r--r-- | src/runtime/mfinal.go | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/src/runtime/mfinal.go b/src/runtime/mfinal.go index 7d0313be12..e92ec80e3c 100644 --- a/src/runtime/mfinal.go +++ b/src/runtime/mfinal.go @@ -214,7 +214,7 @@ func runfinq() { if len(ityp.mhdr) != 0 { // convert to interface with methods // this conversion is guaranteed to succeed - we checked in SetFinalizer - *(*iface)(frame) = assertE2I(ityp, *(*eface)(frame)) + (*iface)(frame).tab = assertE2I(ityp, (*eface)(frame)._type) } default: throw("bad kind in runfinq") @@ -403,7 +403,7 @@ func SetFinalizer(obj interface{}, finalizer interface{}) { // ok - satisfies empty interface goto okarg } - if _, ok := assertE2I2(ityp, *efaceOf(&obj)); ok { + if iface := assertE2I2(ityp, *efaceOf(&obj)); iface.tab != nil { goto okarg } } |
