private void loadVariables() {
		manager.lock.acquire();
		try {
			if (!loadSymbolBasedVariables()) {
				return; // already loaded
			}
			boolean hasCustomVariableStorage = hasCustomVariableStorage();
			loadReturn(hasCustomVariableStorage);
			if (foundBadVariables) {
				Msg.warn(this, "Found one or more bad variables in function " + getName() + " at " +
					getEntryPoint());
			}
			if (!hasCustomVariableStorage) {
				updateParametersAndReturn(); // assign dynamic storage (includes return and auto-params)
			}
		}
		finally {
			manager.lock.release();
		}
	}
@see ghidra.program.model.listing.Function#getStackFrame()
Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/function/FunctionDB.java