private boolean loadFromCache(Program program, ProgramLocation location,
			ViewerPosition viewerPosition) {
		FunctionManager functionManager = program.getFunctionManager();
		Function function = functionManager.getFunctionContaining(location.getAddress());

		if (function == null) { // cache can't handle null keys
			return false;
		}

		DecompileResults results = decompilerCache.getIfPresent(function);
		if (results == null) {
			return false;
		}

		// cancel pending decompile tasks; previous requests shouldn't overwrite the latest request
		decompilerMgr.cancelAll();
		setDecompileData(
			new DecompileData(program, function, location, results, null, null, viewerPosition));

		return true;
	}
Shows the function containing the given location in the decompilerPanel. Also, positions the
decompilerPanel's cursor to the closest equivalent position. If the decompilerPanel is
already displaying the function, then only the cursor is repositioned. To force a
re-decompile use {@link #refreshDisplay(Program, ProgramLocation, File)}.

@param program the program for the given location
@param location the location containing the function to be displayed and the location in that
           function to position the cursor.
@param viewerPosition the viewer position
Ghidra/Features/Decompiler/src/main/java/ghidra/app/decompiler/component/DecompilerController.java