private boolean isReadOnly(Address addr) {
		if ((readonlycache != null) && (readonlycache.contains(addr))) {
			return readonlycacheval;
		}
		MemoryBlock block = program.getMemory().getBlock(addr);
		readonlycache = null;
		readonlycacheval = false;
		if (block != null) {
			readonlycacheval = !block.isWrite();
			readonlycache = new AddressRangeImpl(block.getStart(), block.getEnd());
		}
		return readonlycacheval;
	}
A container for collecting communication between the decompiler and the Ghidra database,
as serviced through DecompileCallback during decompilation of a function.
The query results can then be dumped as an XML document.
The container is populated through methods that mirror the various methods in DecompileCallback.
Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/DecompileDebug.java