mirror of
https://github.com/golang/go.git
synced 2025-12-08 06:10:04 +00:00
runtime: clean up mheap.allocLarge
mheap.allocLarge just calls bestFitTreap and is the only caller of bestFitTreap. Flatten these into a single function. Also fix their comments: allocLarge claims to return exactly npages but can in fact return a larger span, and h.freelarge is not in fact indexed by span start address. Change-Id: Ia20112bdc46643a501ea82ea77c58596bc96f125 Reviewed-on: https://go-review.googlesource.com/47315 Run-TryBot: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org> Reviewed-by: Rick Hudson <rlh@golang.org>
This commit is contained in:
parent
14b07dfc7e
commit
a89e6be5e4
1 changed files with 4 additions and 9 deletions
|
|
@ -857,16 +857,11 @@ func (h *mheap) isLargeSpan(npages uintptr) bool {
|
|||
return npages >= uintptr(len(h.free))
|
||||
}
|
||||
|
||||
// Allocate a span of exactly npage pages from the treap of large spans.
|
||||
// allocLarge allocates a span of at least npage pages from the treap of large spans.
|
||||
// Returns nil if no such span currently exists.
|
||||
func (h *mheap) allocLarge(npage uintptr) *mspan {
|
||||
return bestFitTreap(&h.freelarge, npage)
|
||||
}
|
||||
|
||||
// Search treap for smallest span with >= npage pages.
|
||||
// If there are multiple smallest spans, select the one
|
||||
// with the earliest starting address.
|
||||
func bestFitTreap(treap *mTreap, npage uintptr) *mspan {
|
||||
return treap.remove(npage)
|
||||
// Search treap for smallest span with >= npage pages.
|
||||
return h.freelarge.remove(npage)
|
||||
}
|
||||
|
||||
// Try to add at least npage pages of memory to the heap,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue