public void replaceFallThroughs(AddressSetView originAddressSet, TaskMonitor monitor)
			throws CancelledException {
		if (originAddressSet.isEmpty()) {
			return;
		}
		monitor.setMessage("Replacing Fallthroughs...");
		long max = originAddressSet.getNumAddresses();
		monitor.initialize(max);

		CodeUnitIterator cuIterator2 = originListing.getCodeUnits(originAddressSet, true);
		for (long count = 0; cuIterator2.hasNext(); count++) {
			monitor.checkCancelled();
			CodeUnit cu2 = cuIterator2.next();
			Address originMinAddress = cu2.getMinAddress();
			if (count == PROGRESS_COUNTER_GRANULARITY) {
				monitor.setMessage(
					"Replacing FallThroughs...   " + originMinAddress.toString(true));
				count = 0;
			}
			replaceFallThrough(originMinAddress);
			monitor.setProgress(monitor.getProgress() + cu2.getLength());
		}
		monitor.setProgress(max);
	}
<CODE>replaceFallThroughs</CODE> replaces all fallthroughs in
program1 for the specified address set with those in program2 where they differ.

@param originAddressSet the addresses to be merged.
The addresses in this set should be derived from the origin program.
@param monitor the task monitor for notifying the user of this merge's
progress.
@throws CancelledException if the user cancels the replace via the monitor.
Ghidra/Features/Base/src/main/java/ghidra/program/util/ProgramMerge.java