if (VM.VerifyAssertions) VM._assert(SimpleRCHeader.isLiveRC(object)); SimpleRCHeader.decRC(object); workQueue.push(object);
if (VM.VerifyAssertions) VM._assert(SimpleRCBaseHeader.isLiveRC(object)); if (!SimpleRCBaseHeader.isGreen(object)) { SimpleRCBaseHeader.decRC(object); workQueue.push(object); }
  public final VM_Address traceObject(VM_Address object, boolean root)    throws VM_PragmaInline {    switch (phase) {    case PROCESS:        incRC(object);      if (root)	VM_Interface.getPlan().addToRootSet(object);       break;    case DECREMENT:       VM_Interface.getPlan().addToDecBuf(object);       break;    case MARK_GREY:       if (VM.VerifyAssertions) VM._assert(SimpleRCHeader.isLiveRC(object));      SimpleRCHeader.decRC(object);      workQueue.push(object);      break;    case SCAN:       workQueue.push(object);      break;    case SCAN_BLACK:       SimpleRCHeader.incRC(object);      if (!SimpleRCHeader.isBlack(object))	blackQueue.push(object);      break;    case COLLECT:        workQueue.push(object);      break;    default:      if (VM.VerifyAssertions) VM._assert(false);    }    return object;  }