File: typemap_manyargs.i

package info (click to toggle)
swig 4.4.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 45,980 kB
  • sloc: cpp: 54,284; ansic: 29,022; java: 17,595; python: 12,734; cs: 10,421; ruby: 7,263; yacc: 6,501; makefile: 5,860; javascript: 5,538; sh: 5,422; perl: 4,246; php: 3,733; ml: 2,198; tcl: 2,015; lisp: 1,448; xml: 115
file content (39 lines) | stat: -rw-r--r-- 1,421 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
%module typemap_manyargs

%typemap(in,numinputs=0) (double* a1, short* a2, int* a3, int* a4, int* a5, int* a6, int *a7, int *a8, int *a9, int *a10) ($*1_ltype temp1,$*2_ltype temp2,int temp3,int temp4,int $5_tmpvar,int temp6,int temp7,int temp8, int temp9, $*10_ltype temp10)
{
  $1 = &temp1;      // the code generated for this is arg2 = &temp1;
  $2 = &temp2;      // the code generated for this is arg3 = &temp2;
  $3 = &temp3;      // and so on...
  $4 = &temp4;
  $5 = &$5_tmpvar;
  $6 = &temp6;
  $7 = &temp7;
  $8 = &temp8;
  $9 = &temp9;
  $10 = &temp10;   // the code generated for this was arg20 = &temp10; and arg20 does not exist.
  int $10_ptr = 0; // Was arg20_ptr
  $*1_ltype ltype1 = *$1;
  $*10_ltype ltype10 = *$10;
  (void)$10_ptr;
  (void)ltype1;
  (void)ltype10;
}

// Test $1, $2 temp variable substitutions
%inline %{
void my_c_function(char * filename,double* a1, short* a2, int* a3, int* a4, int* a5, int* a6, int *a7, int *a8, int *a9, int *a10) {}
%}

%typemap(in, numinputs=0) (const char *s, double *d) ($1_type string_temp_$1 = "hello", $*2_ltype double_$2_temp = 0.0, int dummy_$1_$2 = 0)
{
  $1 = const_cast<char *>(string_temp_$1);
  $2 = &double_$2_temp;
  (void)dummy_$1_$2;
}
%typemap(freearg) (const char *s, double *d) ""

void my_funk(const char *s, double *d, int i, const char *s, double *d) {}
%{
void my_funk(const char *s1, double *d1, int i, const char *s2, double *d2) {}
%}