if (Assert.VERIFY_ASSERTIONS) {  Assert._assert(!MarkCompactSpace.getForwardingPointer(object).isNull()); }
while (MarkCompactSpace.getForwardingPointer(object).isNull());
  public ObjectReference precopyObject(ObjectReference object)      throws InlinePragma {    if (Space.isInSpace(MC.MARK_COMPACT, object)) {      if (MarkCompactSpace.testAndMark(object)) {        // TODO: If precopy returns many different objects, this will cause a leak.        // Currently, Jikes RVM does not require many objects to be precopied.        ObjectReference newObject = ObjectModel.copy(object, MC.ALLOC_IMMORTAL);        MarkCompactSpace.setForwardingPointer(object, newObject);        enqueue(newObject);        return newObject;      }      if (Assert.VERIFY_ASSERTIONS) {        // must have a non-null forwarding pointer!        Assert._assert(!MarkCompactSpace.getForwardingPointer(object).isNull());      }      return MarkCompactSpace.getForwardingPointer(object);    }    return super.precopyObject(object);  }