diff options
Diffstat (limited to 'misc/cgo/testplugin/testdata/issue18676/main.go')
-rw-r--r-- | misc/cgo/testplugin/testdata/issue18676/main.go | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/misc/cgo/testplugin/testdata/issue18676/main.go b/misc/cgo/testplugin/testdata/issue18676/main.go index b1dadbedf2..471f3d969c 100644 --- a/misc/cgo/testplugin/testdata/issue18676/main.go +++ b/misc/cgo/testplugin/testdata/issue18676/main.go @@ -3,13 +3,14 @@ // license that can be found in the LICENSE file. // The bug happened like this: -// 1) The main binary adds an itab for *json.UnsupportedValueError / error -// (concrete type / interface type). This itab goes in hash bucket 0x111. -// 2) The plugin adds that same itab again. That makes a cycle in the itab -// chain rooted at hash bucket 0x111. -// 3) The main binary then asks for the itab for *dynamodbstreamsevt.Event / -// json.Unmarshaler. This itab happens to also live in bucket 0x111. -// The lookup code goes into an infinite loop searching for this itab. +// 1. The main binary adds an itab for *json.UnsupportedValueError / error +// (concrete type / interface type). This itab goes in hash bucket 0x111. +// 2. The plugin adds that same itab again. That makes a cycle in the itab +// chain rooted at hash bucket 0x111. +// 3. The main binary then asks for the itab for *dynamodbstreamsevt.Event / +// json.Unmarshaler. This itab happens to also live in bucket 0x111. +// The lookup code goes into an infinite loop searching for this itab. +// // The code is carefully crafted so that the two itabs are both from the // same bucket, and so that the second itab doesn't exist in // the itab hashmap yet (so the entire linked list must be searched). |