From: Keith Randall Date: Wed, 31 May 2017 18:57:07 +0000 (-0700) Subject: runtime: initialize itab.hash always X-Git-Tag: go1.10beta1~1568 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=fcf445dce22f96f874932b37962acba40d51e000;p=gostls13.git runtime: initialize itab.hash always We weren't initializing this field for dynamically-generated itabs. Turns out it doesn't matter, as any time we use this field we also generate a static itab for the interface type / concrete type pair. But we should initialize it anyway, just to be safe. Performance on the benchmarks in CL 44339: benchmark old ns/op new ns/op delta BenchmarkItabFew-12 1040585 26466 -97.46% BenchmarkItabAll-12 228873499 4287696 -98.13% Change-Id: I58ed2b31e6c98b584122bdaf844fee7268b58295 Reviewed-on: https://go-review.googlesource.com/44475 Reviewed-by: Josh Bleecher Snyder --- diff --git a/src/runtime/iface.go b/src/runtime/iface.go index bac0b37b3a..665dbdbc16 100644 --- a/src/runtime/iface.go +++ b/src/runtime/iface.go @@ -222,6 +222,7 @@ imethods: m.fun[0] = 0 return iname } + m.hash = typ.hash return "" }