private void setupConflicts() {
		// the memory map should be the same between LATEST and MY; the
		// only things that could change on the block are name, attributes,
		// and comments.

		conflictList = new ArrayList<ConflictInfo>();

		resultBlocks = mems[RESULT].getBlocks();
		myBlocks = mems[MY].getBlocks();
		latestBlocks = mems[LATEST].getBlocks();
		origBlocks = mems[ORIGINAL].getBlocks();

		if (myBlocks.length != latestBlocks.length) {
			throw new AssertException("Memory maps have different sizes!");
		}
		for (int i = 0; i < myBlocks.length; i++) {
			if (myBlocks[i].getSize() != latestBlocks[i].getSize()) {
				throw new AssertException("Memory blocks have different lengths!");
			}
			if (isNameConflict(i)) {
				conflictList.add(new ConflictInfo(i, true, false, false));
			}
			if (isFlagsConflict(i)) {
				conflictList.add(new ConflictInfo(i, false, true, false));
			}
			if (isCommentConflict(i)) {
				conflictList.add(new ConflictInfo(i, false, false, true));
			}
		}
		conflictCount = conflictList.size();
	}
Identify conflicts among the memory blocks.
Ghidra/Features/Base/src/main/java/ghidra/app/merge/memory/MemoryMergeManager.java