code: VariablePointerValue resolveVariablePointer(VariablePointerValue varPointer) throws Exception {
  		int contextIndex = varPointer.getContextIndex();
  		if (contextIndex == -1)
  			contextIndex = getContextIndexOfVariableNamed(varPointer.getVariableName());
  
  		RTObject valueOfVariablePointedTo = getRawVariableWithName(varPointer.getVariableName(), contextIndex);
  		// Extra layer of indirection:
  		// When accessing a pointer to a pointer (e.g. when calling nested or
  		// recursive functions that take a variable references, ensure we don't
  		// create
  		// a chain of indirection by just returning the final target.
  		VariablePointerValue doubleRedirectionPointer = valueOfVariablePointedTo instanceof VariablePointerValue
  				? (VariablePointerValue) valueOfVariablePointedTo
  				: (VariablePointerValue) null;
  		if (doubleRedirectionPointer != null) {
  			return doubleRedirectionPointer;
  		} else {
  			return new VariablePointerValue(varPointer.getVariableName(), contextIndex);
  		}
  	}
docs: or the exact position of a temporary on the callstack.