/
githubmirror
/
go
Обзор
Документация
Войти
/
githubmirror
/
go
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
test/fixedbugs/issue62203.go
32 строки
688 B
Keith Randall
runtime: fix maps.Clone bug when cloning a map mid-grow
25 авг 2023, 19:10
25 авг 2023, 19:10
b303fb4
Код
Авторство
О чём код?
// run // Copyright 2023 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 ( "fmt" "maps" ) func main() { m := map[string]struct{}{} // Fill m up to the max for 4 buckets = 48 entries. for i := 0; i < 48; i++ { m[fmt.Sprintf("%d", i)] = struct{}{} } // Add a 49th entry, to start a grow to 8 buckets. m["foo"] = struct{}{} // Remove that 49th entry. m is still growing to 8 buckets, // but a clone of m will only have 4 buckets because it // only needs to fit 48 entries. delete(m, "foo") // Clone an 8-bucket map to a 4-bucket map. _ = maps.Clone(m) }