diff options
author | David Crawshaw <crawshaw@golang.org> | 2016-03-14 21:30:43 -0400 |
---|---|---|
committer | David Crawshaw <crawshaw@golang.org> | 2016-03-15 19:57:40 +0000 |
commit | f2772a49353e09e4e00121ca4e538a3b3302a1de (patch) | |
tree | 244e520d9ceb1fec43c6af6ead045b71b0703c8d /src/runtime/type.go | |
parent | 1b9f168f73c44b2743338a16e8122a13203e8e9b (diff) | |
download | go-f2772a49353e09e4e00121ca4e538a3b3302a1de.tar.gz go-f2772a49353e09e4e00121ca4e538a3b3302a1de.zip |
cmd/compile: compute second method type at runtime
The type information for a method includes two variants: a func
without the receiver, and a func with the receiver as the first
parameter. The former is used as part of the dynamic interface
checks, but the latter is only returned as a type in the
reflect.Method struct.
Instead of computing it at compile time, construct it at run time
with reflect.FuncOf.
Using cl/20701 as a baseline,
cmd/go: -480KB, (4.4%)
jujud: -5.6MB, (7.8%)
For #6853.
Change-Id: I1b8c73f3ab894735f53d00cb9c0b506d84d54e92
Reviewed-on: https://go-review.googlesource.com/20709
Run-TryBot: David Crawshaw <crawshaw@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Ian Lance Taylor <iant@golang.org>
Diffstat (limited to 'src/runtime/type.go')
-rw-r--r-- | src/runtime/type.go | 1 |
1 files changed, 0 insertions, 1 deletions
diff --git a/src/runtime/type.go b/src/runtime/type.go index c504e2d294..c7f11d68c2 100644 --- a/src/runtime/type.go +++ b/src/runtime/type.go @@ -155,7 +155,6 @@ type method struct { name *string pkgpath *string mtyp *_type - typ *_type ifn unsafe.Pointer tfn unsafe.Pointer } |