private void aboutToProcess(int address,int reg){
  boolean first=(endIndices == null);
  if ((address == lastAddress) && !first) {
    return;
  }
  if (address < lastAddress) {
    throw new RuntimeException("shouldn't happen");
  }
  if (first || (reg >= endIndices.length)) {
    int newSz=reg + 1;
    RegisterSpecSet newRegs=new RegisterSpecSet(newSz);
    int[] newEnds=new int[newSz];
    Arrays.fill(newEnds,-1);
    if (!first) {
      newRegs.putAll(regs);
      System.arraycopy(endIndices,0,newEnds,0,endIndices.length);
    }
    regs=newRegs;
    endIndices=newEnds;
  }
}

private void aboutToProcess ( int address , int reg ) { boolean first = ( endIndices == null ) ; if ( ( address == lastAddress ) && ! first ) { return ; } if ( address < lastAddress ) { throw new RuntimeException ( "shouldn't happen" ) ; } if ( first || ( reg >= endIndices . length ) ) { int newSz = reg + 1 ; RegisterSpecSet newRegs = new RegisterSpecSet ( newSz ) ; int [ ] newEnds = new int [ newSz ] ; Arrays . fill ( newEnds , - 1 ) ; if ( ! first ) { newRegs . putAll ( regs ) ; System . arraycopy ( endIndices , 0 , newEnds , 0 , endIndices . length ) ; } regs = newRegs ; endIndices = newEnds ; } }
checks the address and other vitals as a prerequisite to further processing .
