code: public void replacePrefix(RangeObject w)
    {
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.entry(this, tc, "replacePrefix", w);
  
      long lstamp = w.endstamp;
  
      // Set index to position of lstamp.
      int lindex;
      RangeObject lastro;
      for (lindex = 0;; lindex++)
      {
        lastro = (RangeObject) blockVector.get(lindex);
        if ((lstamp <= lastro.endstamp) && (lstamp >= lastro.startstamp))
          break;
      }
  
      if (lstamp < lastro.endstamp)
      {
        // lastro will not be removed so change its range
        // lastro = (RangeObject) lastro.clone();
        lastro.startstamp = lstamp + 1;
        // blockVector.m_data[lindex] = lastro;
  
        // figure out how much space to add or remove
        if (lindex == 0)
        { // need to create 1 space
          blockVector.insertNullElementsAt(0, 1);
        }
        else
        { // remove lindex - 1 elements
          if ((lindex - 1) > 0)
            blockVector.removeElementsAt(0, lindex - 1);
        }
      }
      else
      { // everything upto and including lindex will be discarded
        if (lindex > 0)
          blockVector.removeElementsAt(0, lindex);
      }
  
      blockVector.set(0, w);
      cursor = 0;
  
      if (TraceComponent.isAnyTracingEnabled() && tc.isEntryEnabled())
        SibTr.exit(tc, "replacePrefix");
    }
docs: return a list of RangeObjects that are removed