]> Cypherpunks repositories - gostls13.git/commit
runtime: fix conflict between lfstack and checkptr
authorKeith Randall <khr@golang.org>
Wed, 9 Nov 2022 01:48:48 +0000 (17:48 -0800)
committerKeith Randall <khr@golang.org>
Thu, 17 Nov 2022 23:12:04 +0000 (23:12 +0000)
commitd6171c9be2a4bd2801841aa006702886c476f217
tree9d1c4a24f0a80b3354ccaeb8c4064a35380acf1b
parent3e5c2c155645ebaed62e4481430c455045b0fff5
runtime: fix conflict between lfstack and checkptr

lfstack does very unsafe things. In particular, it will not
work with nodes that live on the heap. In normal use by the runtime,
that is the case (it is only used for gc work bufs). But the lfstack
test does use heap objects. It goes through some hoops to prevent
premature deallocation, but those hoops are not enough to convince
-d=checkptr that everything is ok.

Instead, allocate the test objects outside the heap, like the runtime
does for all of its lfstack usage. Remove the lifetime workaround
from the test.

Reported in https://groups.google.com/g/golang-nuts/c/psjrUV2ZKyI

Change-Id: If611105eab6c823a4d6c105938ce145ed731781d
Reviewed-on: https://go-review.googlesource.com/c/go/+/448899
Reviewed-by: Austin Clements <austin@google.com>
Reviewed-by: Keith Randall <khr@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Keith Randall <khr@golang.org>
src/runtime/export_test.go
src/runtime/lfstack.go
src/runtime/lfstack_test.go