@Override
	public Relocation add(Address addr, Status status, int type, long[] values, byte[] bytes,
			String symbolName) {
		lock.acquire();
		try {
			byte flags = RelocationDBAdapter.getFlags(status, 0);
			adapter.add(addr, flags, type, values, bytes, symbolName);
			Relocation reloc = new Relocation(addr, status, type, values,
				getOriginalBytes(addr, status, bytes, 0), symbolName);

			// fire event
			// TODO: full change support is missing
			program.setChanged(ProgramEvent.RELOCATION_ADDED, null, reloc);

			return reloc;
		}
		catch (IOException e) {
			program.dbError(e);
		}
		finally {
			lock.release();
		}
		return null;
	}
Get the specified number of original file bytes for the specified address.  Any offsets
not backed by file bytes will have a 0-byte value.
@param memory program memory
@param addr memory address
@param byteCount number of original file bytes to read
@return byte array of length byteCount
@throws IOException if an IO error occurs
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/reloc/RelocationManager.java