private static int[] getComponentPath(Program program, Address addr) {
		CodeUnit cu = program.getListing().getCodeUnitContaining(addr);

		// if the code unit is a data, get the lowest sub-data containing the address
		if (cu instanceof Data) {
			Data data = (Data) cu;
			Data subData = data.getPrimitiveAt((int) addr.subtract(data.getAddress()));
			return subData != null ? subData.getComponentPath() : data.getComponentPath();
		}
		return null;
	}
Creates a new BytesFieldLocation for the given address. The address will be adjusted to the 
beginning of the code unit containing that address(if it exists).  The original address can 
be retrieved using the "getByteAddress()" method.
@param program the program that this location is related.
@param addr the address of the byte for this location.
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/BytesFieldLocation.java