@Override
	public boolean equals(Object obj) {
		if (obj == null) {
			return false;
		}
		if (this == obj) {
			return true;
		}
		if (getClass() != obj.getClass()) {
			return false;
		}
		ProgramLocation other = (ProgramLocation) obj;
		if (program != other.program) {
			return false;
		}
		if (compareAddr(addr, other.addr) != 0) {
			return false;
		}
		if (compareAddr(refAddr, other.refAddr) != 0) {
			return false;
		}
		if (compareAddr(byteAddr, other.byteAddr) != 0) {
			return false;
		}
		if (!checkComponentPath(componentPath, other.componentPath)) {
			return false;
		}
		return row == other.row && col == other.col && charOffset == other.charOffset;
	}
Get the program location for the given program and save state object.

@param program the program for the location
@param saveState the state to restore
@return the restored program location
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/util/ProgramLocation.java