File: nested_extend_c.i

package info (click to toggle)
swig 3.0.10-1.1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 40,672 kB
  • ctags: 18,134
  • sloc: cpp: 57,901; ansic: 26,762; java: 11,026; python: 8,544; cs: 6,999; makefile: 6,450; yacc: 5,649; sh: 5,201; ruby: 4,680; perl: 3,461; php: 1,880; lisp: 1,827; tcl: 1,068; ml: 747; xml: 115
file content (106 lines) | stat: -rw-r--r-- 1,756 bytes parent folder | download | duplicates (2)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
%module nested_extend_c

#if !defined(SWIGOCTAVE) && !defined(SWIG_JAVASCRIPT_V8)
%extend hiA {
  hiA() {
   union hiA *self = (union hiA *)malloc(sizeof(union hiA));
   self->c = 'h';
   return self;
  }
  char hi_extend() {
    return $self->c;
  }
  static const long swig_size = sizeof(union hiA);
}
%extend lowA {
  lowA() {
    struct lowA *self = (struct lowA *)malloc(sizeof(struct lowA));
    self->name = 0;
    self->num = 99;
    return self;
  }
  int low_extend() {
    return $self->num;
  }
  static const long swig_size = sizeof(struct lowA);
}

%extend hiB {
  hiB() {
   union hiB *self = (union hiB *)malloc(sizeof(union hiB));
   self->c = 'h';
   return self;
  }
  char hi_extend() {
    return $self->c;
  }
  static const long swig_size = sizeof(union hiB);
}
%extend lowB {
  lowB() {
    struct lowB *self = (struct lowB *)malloc(sizeof(struct lowB));
    self->name = 0;
    self->num = 99;
    return self;
  }
  int low_extend() {
    return $self->num;
  }
  static const long swig_size = sizeof(struct lowB);
}

%extend FOO_bar {
    void bar_extend()	{
        $self->d = 1;
    }
};
%extend NestedA {
  static const long swig_size = sizeof(struct NestedA);
}

#endif

%inline %{
typedef struct NestedA {
    int a;
    union hiA {
        char c;
        int d;
    } hiA_instance;

    struct lowA {
        char *name;
        int num;
    } lowA_instance;
} NestedA;

typedef struct {
    int a;
    union hiB {
        char c;
        int d;
    } hiB_instance;

    struct lowB {
        char *name;
        int num;
    } lowB_instance;
} NestedB;

typedef struct {
    int a;
    union {
        char c;
        int d;
    } bar;
} FOO;

static struct {
   int i;
} THING;

int useThing() {
  return THING.i;
}
%}