if (getPagesReserved() >= getTotalPages()) {
if (getPagesReserved() + required >= getTotalPages()) {
  protected void singleRelease() {    // release each of the collected regions    nurseryVM.release();    locationPool.flushQueue(1); // flush any remset entries collected during GC    if (fullHeapGC) {      msCollector.release();      Immortal.release(immortalVM, null);    }    fullHeapGC = (getPagesAvail() < NURSERY_THRESHOLD);    if (verbose > 0) {      VM.sysWrite("   After Collection: ");      showUsage();    }    if (getPagesReserved() >= getTotalPages()) {      if (!progress) 	VM.sysFail("Out of memory");      progress = false;    } else      progress = true;  }