else if (reachOnlyByBranch) {
else if (reachOnlyByBranch && !stackUpdated) {
	public void mergeJumps(DismantleBytecode dbc) {				if (!needToMerge) return;		needToMerge = false;		if (convertJumpToOneZeroState == 3 || convertJumpToZeroOneState == 3) { 			pop(); 			Item top = new Item("I");  			top.setCouldBeZero(true); 			push(top); 			convertJumpToOneZeroState = convertJumpToZeroOneState = 0; 		}        				List<Item> jumpEntry = jumpEntries.get(dbc.getPC());		if (jumpEntry != null) {		    if (DEBUG) {		        System.out.println("XXXXXXX " + reachOnlyByBranch);		        System.out.println("merging lvValues at jump target " + dbc.getPC() + " -> " + Integer.toString(System.identityHashCode(jumpEntry),16) + " " + jumpEntry);		        System.out.println(" current lvValues " + lvValues);		    }		    List<Item> jumpStackEntry = jumpStackEntries.get(dbc.getPC());		    if (reachOnlyByBranch) {		        lvValues = new ArrayList<Item>(jumpEntry);		        if (jumpStackEntry != null) stack = new ArrayList<Item>(jumpStackEntry);		        else stack.clear();		    }		    else {		        mergeLists(lvValues, jumpEntry, false);		        if (jumpStackEntry != null) mergeLists(stack, jumpStackEntry, false);		    }		    if (DEBUG)		        System.out.println(" merged lvValues " + lvValues);		}        else if (reachOnlyByBranch) {            stack.clear();                   boolean foundException = false;            for(CodeException e : dbc.getCode().getExceptionTable()) {                if (e.getHandlerPC() == dbc.getPC()) {                    push(new Item(getExceptionSig(dbc, e)));                    foundException = true;                }            }            if (!foundException)                push(new Item("Ljava/lang/Throwable;"));        }		reachOnlyByBranch = false;	}