mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: eliminate remaining recordspan write barriers
recordspan has two remaining write barriers from writing to the pointer to the backing store of h.allspans. However, h.allspans is always backed by off-heap memory, so let the compiler know this. Unfortunately, this isn't quite as clean as most go:notinheap uses because we can't directly name the backing store of a slice, but we can get it done with some judicious casting. For #22460. Change-Id: I296f92fa41cf2cb6ae572b35749af23967533877 Reviewed-on: https://go-review.googlesource.com/73414 Reviewed-by: Rick Hudson <rlh@golang.org>
This commit is contained in:
parent
b78b54ff83
commit
164e1b8477
2 changed files with 21 additions and 2 deletions
|
|
@ -14,6 +14,13 @@ type slice struct {
|
|||
cap int
|
||||
}
|
||||
|
||||
// An notInHeapSlice is a slice backed by go:notinheap memory.
|
||||
type notInHeapSlice struct {
|
||||
array *notInHeap
|
||||
len int
|
||||
cap int
|
||||
}
|
||||
|
||||
// maxElems is a lookup table containing the maximum capacity for a slice.
|
||||
// The index is the size of the slice element.
|
||||
var maxElems = [...]uintptr{
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue