switchPos[idx++] = target.getFirstInstruction().getPosition();
InstructionHandle firstIns = target.getFirstInstruction(); if (firstIns == null) return; switchPos[idx++] = firstIns.getPosition();
	private void findSwitchDuplicates(CFG cfg, Method method, BasicBlock bb) {				Iterator<Edge> iei = cfg.outgoingEdgeIterator(bb);						int[] switchPos = new int[cfg.getNumOutgoingEdges(bb)+1];		int idx = 0;				while (iei.hasNext()) {			Edge e = iei.next();			if (EdgeTypes.SWITCH_EDGE == e.getType()) {				BasicBlock target = e.getTarget();				switchPos[idx++] = target.getFirstInstruction().getPosition();			} else if (EdgeTypes.SWITCH_DEFAULT_EDGE == e.getType()) {				BasicBlock target = e.getTarget();				switchPos[idx++] = target.getFirstInstruction().getPosition();			} else				return;		}				Arrays.sort(switchPos);				if (switchPos.length < 2)			return;								for (int i = 0; i < switchPos.length-2; i++) {			int s1Length = switchPos[i+1] - switchPos[i];			if (s1Length == 0)				continue;						byte[] s1Bytes = null;						for (int j = i+1; j < switchPos.length-1; j++) {				int s2Length = switchPos[j+1] - switchPos[j];				if (s2Length == 0)					continue;								if (s1Length != s2Length)					continue;								if (s1Bytes == null)					s1Bytes = getCodeBytes(method, switchPos[i], switchPos[i+1]);												byte[] s2Bytes = getCodeBytes(method, switchPos[j], switchPos[j+1]);								if (!Arrays.equals(s1Bytes, s2Bytes))					continue;								bugReporter.reportBug(new BugInstance(this, "DB_DUPLICATE_BRANCHES", LOW_PRIORITY)						.addClass(classContext.getJavaClass())						.addMethod(classContext.getJavaClass().getClassName(), method.getName(), method.getSignature())						.addSourceLineRange(this, 								switchPos[i],								switchPos[i+1]-1)						.addSourceLineRange(this, 								switchPos[j],								switchPos[j+1]-1));				j = switchPos.length;			}		}	}