int[] switchOffsets = null; int[] switchLabels = null;
	public void sawOpcode(int seen) {		int[] switchOffsets = null;		int[] switchLabels = null;		switch (seen) {		case TABLESWITCH:		case LOOKUPSWITCH:			switchPC = getPC();			switchOffsets = getSwitchOffsets();			switchLabels = getSwitchLabels();			inSwitch = true;			reachable = false;			nextIndex = 0;			break;		default:		}		if (inSwitch && nextIndex >= switchOffsets.length)			inSwitch = false;		if (inSwitch) {			if (getPC() == switchPC + switchOffsets[nextIndex]			        && switchOffsets[nextIndex] != getDefaultSwitchOffset()			) {				if (nextIndex > 0 && reachable) {					int endOfPreviousCase = lineNumbers.getSourceLine(getPC() - 1);					int startOfNextCase = lineNumbers.getSourceLine(getPC());					int previousLabel = switchLabels[nextIndex - 1];					int nextLabel = switchLabels[nextIndex];					if (!(previousLabel == 10 && nextLabel == 13)					        && !(previousLabel == 13 && nextLabel == 10)					        && startOfNextCase - endOfPreviousCase <= 2) {						System.out.println("Reached the switch for " + switchLabels[nextIndex]						        + " at line number " + startOfNextCase						        + " in " + getFullyQualifiedMethodName());					}					/*					System.out.println("switchPC: " + switchPC);					System.out.println("nextIndex: " + nextIndex);					System.out.println("switchOffset[nextIndex]: " + switchOffsets[nextIndex]);					for(int i = 0; i < switchOffsets.length; i++)						System.out.println("	" + switchLabels[i] + "	" +							(switchPC + switchOffsets[i]));					*/				}				do {					nextIndex++;					if (nextIndex >= switchOffsets.length) {						inSwitch = false;						break;					}				} while (getPC() == switchPC + switchOffsets[nextIndex]);			}		}		switch (seen) {		case TABLESWITCH:		case LOOKUPSWITCH:		case ATHROW:		case RETURN:		case ARETURN:		case IRETURN:		case LRETURN:		case DRETURN:		case FRETURN:		case GOTO_W:		case GOTO:			reachable = false;			break;		default:			reachable = true;		}	}