code: def _convert_funcarg_to_c_ptr_or_array(
      self, tp, fromvar, tovar, errcode
  ):
      self._prnt("  datasize = _cffi_prepare_pointer_call_argument(")
      self._prnt(
          "      _cffi_type(%d), %s, (char **)&%s);"
          % (self._gettypenum(tp), fromvar, tovar)
      )
      self._prnt("  if (datasize != 0) {")
      self._prnt(
          "    %s = ((size_t)datasize) <= 640 ? "
          "alloca((size_t)datasize) : NULL;" % (tovar,)
      )
      self._prnt(
          "    if (_cffi_convert_array_argument(_cffi_type(%d), %s, "
          "(char **)&%s," % (self._gettypenum(tp), fromvar, tovar)
      )
      self._prnt("            datasize, &large_args_free) < 0)")
      self._prnt("      %s;" % errcode)
      self._prnt("  }")
  
imports: import sys
  from .None import model
  from .error import VerificationError
  from .None import _imp_emulation
label_desc: Use image node_id 17 for calling the VCPythonEngine obj's underlying member method code with example usage: obj._convert_funcarg_to_c_ptr_or_array(tp, fromvar, tovar, errcode) without return types