public void reverseBranch(int which,CodeAddress newTarget){
  int size=insns.size();
  int index=size - which - 1;
  TargetInsn targetInsn;
  try {
    targetInsn=(TargetInsn)insns.get(index);
  }
 catch (  IndexOutOfBoundsException ex) {
    throw new IllegalArgumentException("too few instructions");
  }
catch (  ClassCastException ex) {
    throw new IllegalArgumentException("non-reversible instruction");
  }
  insns.set(index,targetInsn.withNewTargetAndReversed(newTarget));
}

public void reverseBranch ( int which , CodeAddress newTarget ) { int size = insns . size ( ) ; int index = size - which - 1 ; TargetInsn targetInsn ; try { targetInsn = ( TargetInsn ) insns . get ( index ) ; } catch ( IndexOutOfBoundsException ex ) { throw new IllegalArgumentException ( "too few instructions" ) ; } catch ( ClassCastException ex ) { throw new IllegalArgumentException ( "non-reversible instruction" ) ; } insns . set ( index , targetInsn . withNewTargetAndReversed ( newTarget ) ) ; }
reverses a branch which is buried a given number of instructions backward in the output . it is illegal to call this unless the indicated instruction really is a reversible branch .
