if (convertJumpToOneZeroState == 3 || convertJumpToZeroOneState == 3) { pop(); Item top = new Item("I"); top.couldBeZero = true; push(top); convertJumpToOneZeroState = convertJumpToZeroOneState = 0; }
	public void mergeJumps(DismantleBytecode dbc) {		if (!needToMerge) return;		needToMerge = false;		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);			} 						if (reachOnlyByBranch) lvValues = new ArrayList<Item>(jumpEntry);			else mergeLists(lvValues, jumpEntry, false);			if (DEBUG) 			System.out.println(" merged lvValues " + lvValues); 		} 		else if (dbc.getPC() == jumpTarget) {			jumpTarget = -1;			if (!jumpStack.empty()) {								List<Item> stackToMerge = jumpStack.pop();				if (DEBUG) {					System.out.println("************");					System.out.println("merging stacks at " + dbc.getPC() + " -> " + stackToMerge);					System.out.println(" current stack " + stack);					}				if (reachOnlyByBranch) lvValues = new ArrayList<Item>(stackToMerge);				else mergeLists(stack, stackToMerge, true);				if (DEBUG) 					System.out.println(" updated stack " + stack);			} } 		reachOnlyByBranch = false;		}