UnconditionalDerefDataflow dataflow = classContext.getUnconditionalDerefDataflow(method); UnconditionalDerefSet unconditionalDerefSet = dataflow.getResultFact(cfg.getEntry()); if (unconditionalDerefSet.isValid() && !unconditionalDerefSet.isEmpty()) { UnconditionalDerefProperty property = new UnconditionalDerefProperty(); property.setUnconditionalDerefParamSet(unconditionalDerefSet);
Map<ValueNumber,Integer> valueNumberToParamMap = vnaDataflow.getValueNumberToParamMap(method); if (VERBOSE_DEBUG) { System.out.print("Value number to param map: "); for (Iterator<ValueNumber> i = valueNumberToParamMap.keySet().iterator(); i.hasNext();) { ValueNumber valueNumber = i.next(); System.out.print(valueNumber.getNumber() + "->" + valueNumberToParamMap.get(valueNumber)); } System.out.println(); }  BitSet entryPostDominators = postDominators.getResultFact(cfg.getEntry()); if (VERBOSE_DEBUG) { System.out.println("Non-implicit exception entry postdominators: " + entryPostDominators); }  UnconditionalDerefProperty property = new UnconditionalDerefProperty();  for (Iterator<BasicBlock> i = cfg.blockIterator(); i.hasNext();) { BasicBlock basicBlock = i.next();   if (!basicBlock.isNullCheck() ) { continue; } if (VERBOSE_DEBUG) { System.out.println("Check block " + basicBlock.getId()); }
	private void analyzeMethod(ClassContext classContext, Method method) {		try {			CFG cfg = classContext.getCFG(method);			UnconditionalDerefDataflow dataflow = classContext.getUnconditionalDerefDataflow(method);			UnconditionalDerefSet unconditionalDerefSet = dataflow.getResultFact(cfg.getEntry());			if (unconditionalDerefSet.isValid() && !unconditionalDerefSet.isEmpty()) {				UnconditionalDerefProperty property = new UnconditionalDerefProperty();				property.setUnconditionalDerefParamSet(unconditionalDerefSet);								XMethod xmethod = XMethodFactory.createXMethod(classContext.getJavaClass(), method);				database.setProperty(xmethod, property);			}		} catch (CFGBuilderException e) {			bugReporter.logError("Error analyzing " + method + " for unconditional deref training", e);		} catch (DataflowAnalysisException e) {			bugReporter.logError("Error analyzing " + method + " for unconditional deref training", e);		}	}