private void addSuperBlockStart(int pc){
  if (GenerateStackMap) {
    if (itsSuperBlockStarts == null) {
      itsSuperBlockStarts=new int[SuperBlockStartsSize];
    }
 else     if (itsSuperBlockStarts.length == itsSuperBlockStartsTop) {
      int[] tmp=new int[itsSuperBlockStartsTop * 2];
      System.arraycopy(itsSuperBlockStarts,0,tmp,0,itsSuperBlockStartsTop);
      itsSuperBlockStarts=tmp;
    }
    itsSuperBlockStarts[itsSuperBlockStartsTop++]=pc;
  }
}

private void addSuperBlockStart ( int pc ) { if ( GenerateStackMap ) { if ( itsSuperBlockStarts == null ) { itsSuperBlockStarts = new int [ SuperBlockStartsSize ] ; } else if ( itsSuperBlockStarts . length == itsSuperBlockStartsTop ) { int [ ] tmp = new int [ itsSuperBlockStartsTop * 2 ] ; System . arraycopy ( itsSuperBlockStarts , 0 , tmp , 0 , itsSuperBlockStartsTop ) ; itsSuperBlockStarts = tmp ; } itsSuperBlockStarts [ itsSuperBlockStartsTop ++ ] = pc ; } }
add a pc as the start of super block . a pc is the beginning of a super block if : - pc = = 0 - it is the target of a branch instruction - it is the beginning of an exception handler - it is directly after an unconditional jump
