diff options
Diffstat (limited to 'libgo/go/runtime/iface.go')
-rw-r--r-- | libgo/go/runtime/iface.go | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/libgo/go/runtime/iface.go b/libgo/go/runtime/iface.go index 74b54f5209c..877e191a855 100644 --- a/libgo/go/runtime/iface.go +++ b/libgo/go/runtime/iface.go @@ -296,6 +296,7 @@ func getitab(lhs, rhs *_type, canfail bool) unsafe.Pointer { } // Not found. Grab the lock and try again. + lockInit(&itabLock, lockRankItab) lock(&itabLock) if m = itabTable.find(lhsi, rhs); m != nil { unlock(&itabLock) @@ -514,8 +515,8 @@ func reflectlite_ifaceE2I(inter *interfacetype, e eface, dst *iface) { dst.data = e.data } -// staticbytes is used to avoid convT2E for byte-sized values. -var staticbytes = [...]byte{ +// staticuint64s is used to avoid allocating in convTx for small integer values. +var staticuint64s = [...]uint64{ 0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f, 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, |