private static void validateNextLine(DiffLinesValidator validator1,
			DiffLinesValidator validator2) {
		if (validator1.isDone()) {
			return;
		}

		ValidatableLine line1 = validator1.getLine();
		if (line1 == null) { // null means no lines or nothing left but empty lines
			return;
		}

		ValidatableLine line2 = validator2.getLine();
		if (line2 == null) { // the other state is shorter than this one and has run out of lines
			PlaceHolderLine placeholder =
				validator2.insertMismatchPlaceholder(validator2.getMarkerPosition(), line1);

			line1.setValidationLine(placeholder);
			validator1.increment(); // done with this line, move the state forward
			return;
		}

		if (line1.matches(line2)) {

			line1.setValidationLine(line2);

			// since they matched, mark the other line as valid too
			validator2.increment();
			validator1.increment();
			return;
		}

		//
		// No match at the current position; we need to decide if there is any match...
		//
		Integer list2MatchForLine1 = findNextMatch(validator1, line1, validator2);
		if (list2MatchForLine1 != null) {

			ValidatableLine match = validator2.getLine(list2MatchForLine1);
			line1.setValidationLine(match);

			// ...there is an upcoming match; that match will be handled later; mark this line done
			validator1.increment();
			return;
		}

		Integer list1MatchForLine2 = findNextMatch(validator2, line2, validator1);
		if (list1MatchForLine2 == null) {
			// neither line has a match in the other list, treat them as 
			// two different values in the same position			
			line1.setValidationLine(line2);
			validator2.increment();
		}
		else {
			// list 1 has a match for line2, so they will sync up later
			PlaceHolderLine placeholder =
				validator2.insertMismatchPlaceholder(validator1.getMarkerPosition(), line1);

			line1.setValidationLine(placeholder);
		}

		validator1.increment(); // done with this line, move the state forward
	}
walk both lists, processing the lines and adding blank lines to align the data
Ghidra/Features/Base/src/main/java/ghidra/app/util/html/diff/DataTypeDiffBuilder.java