From: Austin Clements Date: Fri, 30 Jun 2017 16:18:27 +0000 (-0400) Subject: runtime: don't double-zero treap nodes X-Git-Tag: go1.12beta1~895 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=011b8eb6bb9783ec6b22697810863f30ca7bda1f;p=gostls13.git runtime: don't double-zero treap nodes mheap_.treapalloc.alloc() already returns a zeroed treapNode. Don't bother re-zeroing all of the fields. Change-Id: Iea317040fbb72dfe5ef1e2c56c287680b065f2d9 Reviewed-on: https://go-review.googlesource.com/c/139460 Run-TryBot: Austin Clements Reviewed-by: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/runtime/mgclarge.go b/src/runtime/mgclarge.go index e7fa831937..11a977d6ba 100644 --- a/src/runtime/mgclarge.go +++ b/src/runtime/mgclarge.go @@ -46,15 +46,6 @@ type treapNode struct { priority uint32 // random number used by treap algorithm to keep tree probabilistically balanced } -func (t *treapNode) init() { - t.right = nil - t.left = nil - t.parent = nil - t.spanKey = nil - t.npagesKey = 0 - t.priority = 0 -} - // isSpanInTreap is handy for debugging. One should hold the heap lock, usually // mheap_.lock(). func (t *treapNode) isSpanInTreap(s *mspan) bool { @@ -140,7 +131,6 @@ func (root *mTreap) insert(span *mspan) { // https://faculty.washington.edu/aragon/pubs/rst89.pdf t := (*treapNode)(mheap_.treapalloc.alloc()) - t.init() t.npagesKey = span.npages t.priority = fastrand() t.spanKey = span @@ -188,8 +178,6 @@ func (root *mTreap) removeNode(t *treapNode) { root.treap = nil } // Return the found treapNode's span after freeing the treapNode. - t.spanKey = nil - t.npagesKey = 0 mheap_.treapalloc.free(unsafe.Pointer(t)) }