func findStart()

in qf.go [422:444]


func findStart(dq uint64, size uint64, read readFn) uint64 {
	// scan left to figure out how much to skip
	runs, complete := 1, 0
	for i := dq; true; left(&i, size) {
		sd := slotData(read(i))
		if !sd.continuation() {
			complete++
		}
		if !sd.shifted() {
			break
		} else if sd.occupied() {
			runs++
		}
	}
	// scan right to find our run
	for runs > complete {
		right(&dq, size)
		if !slotData(read(dq)).continuation() {
			complete++
		}
	}
	return dq
}