If isAllocated
blockIndex points to new block
else
If numPredecessors == 0, blockIndex points to currentBlock at
If numPredecessors == 1, blockIndex points to first predecessor
If numPredecessors > 1, blockIndex points to a new block and isAllocated must be true
If isAllocated blockIndex points to new block else If numPredecessors == 0, blockIndex points to currentBlock at If numPredecessors == 1, blockIndex points to first predecessor If numPredecessors > 1, blockIndex points to a new block and isAllocated must be true