From fcf445dce22f96f874932b37962acba40d51e000 Mon Sep 17 00:00:00 2001 From: Keith Randall Date: Wed, 31 May 2017 11:57:07 -0700 Subject: [PATCH] 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 --- src/runtime/iface.go | 1 + 1 file changed, 1 insertion(+) 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 "" } -- 2.48.1