• Michael Hudson-Doyle's avatar
    cmd/compile, runtime: a different approach to duplicate itabs · 1ec64e9b
    Michael Hudson-Doyle authored
    golang.org/issue/17594 was caused by additab being called more than once for
    an itab. golang.org/cl/32131 fixed that by making the itabs local symbols,
    but that in turn causes golang.org/issue/18252 because now there are now
    multiple itab symbols in a process for a given (type,interface) pair and
    different code paths can end up referring to different itabs which breaks
    lots of reflection stuff. So this makes itabs global again and just takes
    care to only call additab once for each itab.
    
    Fixes #18252
    
    Change-Id: I781a193e2f8dd80af145a3a971f6a25537f633ea
    Reviewed-on: https://go-review.googlesource.com/34173
    Run-TryBot: Michael Hudson-Doyle <michael.hudson@canonical.com>
    TryBot-Result: Gobot Gobot <gobot@golang.org>
    Reviewed-by: 's avatarDavid Crawshaw <crawshaw@golang.org>
    1ec64e9b
reflect.go 43.9 KB