]> Cypherpunks.ru repositories - gostls13.git/commit
sync: prevent (*Map).Range from always escaping
authorMauri de Souza Meneguzzo <mauri870@gmail.com>
Fri, 1 Sep 2023 18:26:49 +0000 (18:26 +0000)
committerGopher Robot <gobot@golang.org>
Fri, 1 Sep 2023 22:41:39 +0000 (22:41 +0000)
commit7015ed891c6f4e51ebaa642fce42ea8a1592b4e1
treefa3841de5dffcbe813ff78069c476e6008fc08cd
parent227ec028244b8ad91c7dd5b69fca5150f99a4878
sync: prevent (*Map).Range from always escaping

After the change from CL 426074 the Range method on Map always
escape the read variable, leading to an allocation.

Since the compiler doesn't do live-range splitting for local variables we
need to use some hints to only escape in that particular branch.

Fixes #62404

Change-Id: I938a5e593647455fa827e3dd3ed8ea22c7365df1
GitHub-Last-Rev: fcbedb467c7b4e6f1d49e299d243cad70deb34e9
GitHub-Pull-Request: golang/go#62408
Reviewed-on: https://go-review.googlesource.com/c/go/+/524976
Auto-Submit: Bryan Mills <bcmills@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
Run-TryBot: Bryan Mills <bcmills@google.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Bryan Mills <bcmills@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
src/sync/map.go
src/sync/map_test.go