code: func (t *Collection) mkNodeLoc(n *node) *nodeLoc {
  	freeNodeLocLock.Lock()
  	allocStats.MkNodeLocs++
  	t.allocStats.MkNodeLocs++
  	nloc := freeNodeLocs
  	if nloc == nil {
  		allocStats.AllocNodeLocs++
  		t.allocStats.AllocNodeLocs++
  		freeNodeLocLock.Unlock()
  		nloc = &nodeLoc{}
  	} else {
  		freeNodeLocs = nloc.next
  		allocStats.CurFreeNodeLocs--
  		freeNodeLocLock.Unlock()
  	}
  	nloc.loc = unsafe.Pointer(nil)
  	nloc.node = unsafe.Pointer(n)
  	nloc.next = nil
  	return nloc
  }
docs: // Assumes that the caller serializes invocations.