}
@Inline
private final void verifyChild(Object child, Object parent, String where, int i, int offset) {
if (child != null) {
final ObjectReference childRef = ObjectReference.fromObject(child);
if (!heapManager.isObject(childRef.toAddress())) {
Unsafe.debug("GCMarkError: in ");
Unsafe.debug(where);
Unsafe.debug(", i ");
Unsafe.debug(i);
Unsafe.debug(", offset ");
Unsafe.debug(offset);
Unsafe.debug(", parent type ");
Unsafe.debug(VmMagic.getObjectType(parent).getName());
Unsafe.debug(VmMagic.getObjectColor(parent));
Unsafe.debug("; child (");
Unsafe.debug(childRef.toAddress().toInt());
Unsafe.debug(") is not an object ");
Unsafe.debug(VmMagic.getObjectColor(childRef));
helper.die("Corrupted heap");
}
}