if (handle == basicBlock.getLastInstruction() && REFCMP_OPCODE_SET.get(opcode)) { Condition condition = getCondition(basicBlock); if (condition != null) {  condition.refresh(vnaDataflow.getFactAtLocation(location), fact); } }
	public void transferInstruction(InstructionHandle handle, BasicBlock basicBlock, DefinitelyNullSet fact) throws DataflowAnalysisException {		Location location = new Location(handle, basicBlock);		ValueNumberFrame vnaFrame = vnaDataflow.getFactAfterLocation(location);				if (!vnaFrame.isValid()) {			fact.setTop();			return;		}				// ACONST_NULL obviously produces a value that is DEFINITELY NULL.		// LDC produces values that are NOT NULL.		// NEW produces values that are NOT NULL.				short opcode = handle.getInstruction().getOpcode();				if (opcode == Constants.ACONST_NULL) {			setTOS(vnaFrame, location, fact, true);		} else if (opcode == Constants.LDC || opcode == Constants.NEW) {			setTOS(vnaFrame, location, fact, false);		}				// TODO: for method invocations, check return annotation		// Note that we don't handle IFNULL and IFNONNULL here.		// Those are handled in the edge transfer function, because we need		// to produce different values in each of the control successors.	}