@Override
	public ProgramLocation getProgramLocation(int row, int col, ListingField bf) {

		Object proxyObject = bf.getProxy().getObject();
		if (!(proxyObject instanceof CodeUnit)) {
			return null;
		}
		CodeUnit cu = (CodeUnit) proxyObject;

		String[] comments;
		List<AttributedString> attributedStrings = createBlockStartText(cu);
		if (attributedStrings == null) {
			comments = new String[0];
		}
		else {
			comments = new String[attributedStrings.size()];
			for (int i = 0; i < comments.length; i++) {
				comments[i] = attributedStrings.get(i).getText();
			}
		}

		return new MemoryBlockStartFieldLocation(cu.getProgram(), cu.getMinAddress(), null, row,
			col, comments, 0);
	}
Overridden to ensure that we return a {@link MemoryBlockStartFieldLocation} instance.

@see ghidra.app.util.viewer.field.FieldFactory#getProgramLocation(int, int, ghidra.app.util.viewer.field.ListingField)
Ghidra/Features/Base/src/main/java/ghidra/app/util/viewer/field/MemoryBlockStartFieldFactory.java