/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue22781.go
29 строк
680 B
Keith Randall
cmd/compile: fix mapassign_fast* routines for pointer keys
22 ноя 2017, 07:30
22 ноя 2017, 07:30
48e207d
Код
Авторство
О чём код?
// run // Copyright 2017 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package main import "runtime/debug" type T struct { // >= 16 bytes to avoid tiny alloc. a, b int } func main() { debug.SetGCPercent(1) for i := 0; i < 100000; i++ { m := make(map[*T]struct{}, 0) for j := 0; j < 20; j++ { // During the call to mapassign_fast64, the key argument // was incorrectly treated as a uint64. If the stack was // scanned during that call, the only pointer to k was // missed, leading to *k being collected prematurely. k := new(T) m[k] = struct{}{} } } }