func (p *Process) ForEachObject(fn func(x Object) bool) {
	for _, k := range p.pages {
		pt := p.pageTable[k]
		for i := range pt {
			h := &pt[i]
			m := h.mark
			for m != 0 {
				j := bits.TrailingZeros64(m)
				m &= m - 1
				x := Object(k)*pageTableSize*heapInfoSize + Object(i)*heapInfoSize + Object(j)*8
				if !fn(x) {
					return
				}
			}
		}
	}
}
func (p *Process) ForEachObject(fn func(x Object) bool) {
	for _, k := range p.pages {
		pt := p.pageTable[k]
		for i := range pt {
			h := &pt[i]
			m := h.mark
			for m != 0 {
				j := bits.TrailingZeros64(m)
				m &= m - 1
				x := Object(k)*pageTableSize*heapInfoSize + Object(i)*heapInfoSize + Object(j)*8
				if !fn(x) {
					return
				}
			}
		}
	}
}
func ( p * Process ) ForEachObject ( fn func ( x Object ) bool ) { for _ , k := range p . pages { pt := p . pageTable [ k ] for i := range pt { h := & pt [ i ] m := h . mark for m != 0 { j := bits . TrailingZeros64 ( m ) m &= m - 1 x := Object ( k ) * pageTableSize * heapInfoSize + Object ( i ) * heapInfoSize + Object ( j ) * 8 if ! fn ( x ) { return } } } } }
// ForEachObject calls fn with each object in the Go heap.
// If fn returns false, ForEachObject returns immediately.
ForEachObject calls fn with each object in the Go heap . If fn returns false ForEachObject returns immediately .