HEX
Server: nginx/1.28.1
System: Linux 10-41-63-61 6.8.0-31-generic #31-Ubuntu SMP PREEMPT_DYNAMIC Sat Apr 20 00:40:06 UTC 2024 x86_64
User: www (1001)
PHP: 7.4.33
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: //usr/share/swig4.0/csharp/argcargv.i
/* -------------------------------------------------------------
 * SWIG library containing argc and argv multi-argument typemaps
 * ------------------------------------------------------------- */

%typemap(cstype) (int ARGC, char **ARGV) "string[]"
%typemap(imtype) (int ARGC, char **ARGV) "global::System.IntPtr"
%typemap(ctype) (int ARGC, char **ARGV) "void*"
%typemap(csin) (int ARGC, char **ARGV) "$modulePINVOKE.SWIG_csharp_string_array_to_c($csinput.Length, $csinput)"
%pragma(csharp) imclasscode=%{
  [global::System.Runtime.InteropServices.DllImport("$module", EntryPoint="SWIG_csharp_string_array_to_c")]
  public static extern global::System.IntPtr SWIG_csharp_string_array_to_c(int len, [global::System.Runtime.InteropServices.In,global::System.Runtime.InteropServices.MarshalAs(global::System.Runtime.InteropServices.UnmanagedType.LPArray, ArraySubType=global::System.Runtime.InteropServices.UnmanagedType.LPStr, SizeParamIndex=0)] string[] array);
%}
%fragment("SWIG_csharp_string_array", "header") %{
#ifdef __cplusplus
extern "C" {
#endif
typedef struct { int len; char* array[1]; } SWIG_csharp_string_array;

static void* SWIG_csharp_string_array_free(SWIG_csharp_string_array *arr) {
  if (arr != SWIG_NULLPTR) {
    int i;
    for(i = 0; i < arr->len; i++) {
      free(arr->array[i]);
    }
    free(arr);
  }
  return SWIG_NULLPTR;
}

SWIGEXPORT void* SWIGSTDCALL SWIG_csharp_string_array_to_c(int len, void *array) {
  int i;
  size_t alen, slen;
  char *p, **ptr;
  SWIG_csharp_string_array *ret;
  /* We don't need to add one to len for the terminating NULL here because
   * SWIG_csharp_string_array includes one element already.
   */
  alen = sizeof(SWIG_csharp_string_array) + sizeof(char *) * len;
  ret = (SWIG_csharp_string_array *)malloc(alen);
  if (ret == SWIG_NULLPTR) {
    SWIG_CSharpSetPendingException(SWIG_CSharpOutOfMemoryException, "fail to duplicate array.");
    return SWIG_NULLPTR;
  }
  memset(ret, 0, alen);
  ret->len = len;
  ptr = (char **)array;
  for(i = 0; i < len; i++) {
    slen = strlen(ptr[i]) + 1;
    p = (char*)malloc(slen);
    if (p == SWIG_NULLPTR) {
      SWIG_CSharpSetPendingException(SWIG_CSharpOutOfMemoryException, "fail to alloc a string.");
      return SWIG_csharp_string_array_free(ret);
    }
    memcpy(p, ptr[i], slen);
    ret->array[i] = p;
  }
  ret->array[i] = SWIG_NULLPTR;
  return ret;
}

#ifdef __cplusplus
}
#endif
%}

%typemap(in, canthrow=1, fragment="SWIG_csharp_string_array") (int ARGC, char **ARGV) %{
  SWIG_csharp_string_array *arr = (SWIG_csharp_string_array*)$input;
  if (arr != SWIG_NULLPTR) {
    $1 = ($1_ltype)arr->len;
    $2 = ($2_ltype)arr->array;
  }
%}

%typemap(freearg, fragment="SWIG_csharp_string_array") (int ARGC, char **ARGV) %{
  SWIG_csharp_string_array_free((SWIG_csharp_string_array*)$input);
%}