When calculating post-compaction destination addresses during sliding heap
compaction, a block of contiguous memory objects may be treated as a
single unit by adding the offset of each object in the block to the
post-compaction address for the first object in the block. Additionally
contiguous blocks of reachable objects may be constructed by creating
deadwood objects, such as non-referenced, placeholder objects, into gaps
between objects. Thus, post-compaction destination addresses for the
object in the resulting contiguous block may be determined by adding the
offset of an object within the block to the destination address for the
first object in the block.