private boolean breakFollows ( Loop loop , boolean needsPop ) { byte [ ] code = getCode ( ) . getCode ( ) ; int nextPC = getNextPC ( ) ; if ( needsPop ) { int popOp = CodeByteUtils . getbyte ( code , nextPC ++ ) ; if ( popOp != Const . POP ) { return false ; } } int gotoOp = CodeByteUtils . getbyte ( code , nextPC ) ; if ( ( gotoOp == Const . GOTO ) || ( gotoOp == Const . GOTO_W ) ) { int target = nextPC + CodeByteUtils . getshort ( code , nextPC + 1 ) ; if ( target > loop . getLoopFinish ( ) ) { return true ; } } return false ; }
looks to see if the following instruction is a GOTO preceded by potentially a pop