if (DEBUG) { System.out.println("IsNullValueAnalysis for " + methodGen.getClassName() + "." + methodGen.getName() + " : " + methodGen.getSignature()); }
	public IsNullValueAnalysis(MethodGen methodGen, CFG cfg, ValueNumberDataflow vnaDataflow, DepthFirstSearch dfs,	                           AssertionMethods assertionMethods) {		super(dfs);				this.trackValueNumbers = AnalysisContext.currentAnalysisContext().getBoolProperty(				AnalysisFeatures.TRACK_VALUE_NUMBERS_IN_NULL_POINTER_ANALYSIS);				this.methodGen = methodGen;		this.visitor = new IsNullValueFrameModelingVisitor(				methodGen.getConstantPool(),				assertionMethods,				vnaDataflow,				trackValueNumbers);		this.vnaDataflow = vnaDataflow;		this.numNonExceptionSuccessorMap = new int[cfg.getNumBasicBlocks()];		this.locationWhereValueBecomesNullSet = new HashSet<LocationWhereValueBecomesNull>();		// For each basic block, calculate the number of non-exception successors.		Iterator<Edge> i = cfg.edgeIterator();		while (i.hasNext()) {			Edge edge = i.next();			if (edge.isExceptionEdge())				continue;			int srcBlockId = edge.getSource().getId();			numNonExceptionSuccessorMap[srcBlockId]++;		}	}