private V intersect(V v1, V v2, Map<V, Integer> map) {
		V finger1 = v1;
		V finger2 = v2;
		int finger1Index = map.get(finger1);
		int finger2Index = map.get(finger2);
		while (!finger1.equals(finger2)) {
			while (finger1Index < finger2Index) {
				finger1 = dominatorMap.get(finger1);
				finger1Index = map.get(finger1);
			}
			while (finger2Index < finger1Index) {
				if (dominatorMap.get(finger2) == null) {
					// this can happen when the dominators for 'finger2' have not 
					// yet been calculated
					return finger1;
				}

				finger2 = dominatorMap.get(finger2);
				finger2Index = map.get(finger2);
			}
		}
		return finger1;
	}
Constructor.

@param g the graph
@param monitor the monitor
@throws CancelledException if the algorithm is cancelled
@throws IllegalArgumentException if there are no source vertices in the graph
Ghidra/Framework/Graph/src/main/java/ghidra/graph/algo/ChkDominanceAlgorithm.java