annotate test/suite_x86win32std/main.cc @ 606:85b7a117b807

- more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
author Tassilo Philipp
date Wed, 21 Sep 2022 15:20:58 +0200
parents 0f40e13a2f0a
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
1 /*
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
2
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
3 Package: dyncall
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
4 Library: test
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
5 File: test/suite_x86win32std/main.cc
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
6 Description:
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
7 License:
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
8
606
85b7a117b807 - more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
Tassilo Philipp
parents: 605
diff changeset
9 Copyright (c) 2007-2022 Daniel Adler <dadler@uni-goettingen.de>,
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
10 Tassilo Philipp <tphilipp@potion-studios.com>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
11
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
12 Permission to use, copy, modify, and distribute this software for any
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
13 purpose with or without fee is hereby granted, provided that the above
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
14 copyright notice and this permission notice appear in all copies.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
15
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
16 THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
17 WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
18 MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
19 ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
20 WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
21 ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
22 OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
23
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
24 */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
25
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
26
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
27
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
28 #include "../../dyncall/dyncall.h"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
29 #include "config.h"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
30 #include "../../dyncall/dyncall_value.h"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
31 #include <math.h>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
32 #include "../common/platformInit.h"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
33 #include "../common/platformInit.c" /* Impl. for functions only used in this translation unit */
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
34
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
35
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
36 int getId();
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
37 DCpointer getFunc(int x);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
38 DCValue* getArg(int pos);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
39
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
40
606
85b7a117b807 - more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
Tassilo Philipp
parents: 605
diff changeset
41 static DCbool valueBool [NARGS];
85b7a117b807 - more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
Tassilo Philipp
parents: 605
diff changeset
42 static DCshort valueShort [NARGS];
85b7a117b807 - more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
Tassilo Philipp
parents: 605
diff changeset
43 static DCchar valueChar [NARGS];
85b7a117b807 - more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
Tassilo Philipp
parents: 605
diff changeset
44 static DCint valueInt [NARGS];
85b7a117b807 - more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
Tassilo Philipp
parents: 605
diff changeset
45 static DClonglong valueLongLong[NARGS];
85b7a117b807 - more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
Tassilo Philipp
parents: 605
diff changeset
46 static DCdouble valueDouble [NARGS];
85b7a117b807 - more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
Tassilo Philipp
parents: 605
diff changeset
47 static DCpointer valuePointer [NARGS];
85b7a117b807 - more statics in test code (this is partly needed on an experimental freebsd sparc64 build where the elf cleanup code crashes for some reason ... it's probably that experimental build, but a good change to do regardless)
Tassilo Philipp
parents: 605
diff changeset
48 static DCfloat valueFloat [NARGS];
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
49
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
50
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
51 bool equals(int select, int pos, void* data)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
52 {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
53 switch(select)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
54 {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
55 case 0: return ( getArg(pos)->B == valueBool[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
56 case 1: return ( getArg(pos)->i == valueInt[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
57 case 2: return ( getArg(pos)->L == valueLongLong[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
58 case 3: return ( getArg(pos)->d == valueDouble[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
59 case 4: return ( getArg(pos)->p == valuePointer[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
60 case 5: return ( getArg(pos)->f == valueFloat[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
61 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
62 return false;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
63 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
64
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
65
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
66 void clearValues();
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
67
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
68
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
69 void init()
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
70 {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
71 for (int i = 0 ; i < NARGS ; ++i ) {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
72
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
73 valueBool[i] = DCbool( (i % 1) ? DC_TRUE : DC_FALSE );
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
74 valueInt[i] = DCint(i);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
75 valueLongLong[i] = DClonglong(i);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
76 valueDouble[i] = DCdouble(i);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
77 valuePointer[i] = DCpointer(i);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
78 valueFloat[i] = DCfloat(i);
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
79 }
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
80 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
81
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
82
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
83 void push(DCCallVM* pCall, int select, int pos)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
84 {
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
85 switch(select)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
86 {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
87 case 0: dcArgBool( pCall, valueBool[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
88 case 1: dcArgInt( pCall, valueInt[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
89 case 2: dcArgLongLong( pCall, valueLongLong[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
90 case 3: dcArgDouble( pCall, valueDouble[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
91 case 4: dcArgPointer( pCall, valuePointer[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
92 case 5: dcArgFloat( pCall, valueFloat[pos] ); break;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
93 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
94 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
95
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
96
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
97 #define test(x) if (!(x)) return false
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
98
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
99
413
d73dc7ad37e4 - fix nameclash due to a previous and bad cleanup
Tassilo Philipp
parents: 410
diff changeset
100 bool test_case(int x)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
101 {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
102 clearValues();
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
103
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
104 DCCallVM* pCall = dcNewCallVM(4096);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
105 dcMode(pCall, DC_CALL_C_X86_WIN32_STD);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
106 dcReset(pCall);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
107 int y = x;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
108 int selects[NARGS] = { 0, };
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
109 int pos = 0;
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
110 for(pos = 0;y>0;++pos)
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
111 {
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
112 int select = (y-1) % NTYPES;
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
113 selects[pos] = select;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
114 push(pCall,select,pos);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
115 y = (y-1) / NTYPES;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
116 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
117 dcCallVoid(pCall,getFunc(x));
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
118
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
119 test( getId() == x );
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
120
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
121 for(int i = 0;i<pos;++i) {
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
122 test( equals( selects[i], i, getArg(i) ) );
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
123 }
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
124
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
125 dcFree(pCall);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
126 return true;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
127 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
128
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
129
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
130 int powerfact(int x, int n)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
131 {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
132 if (n==0) return 0;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
133 return static_cast<int>( pow((double)x,n)+powerfact(x,n-1) );
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
134 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
135
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
136 #include <stdio.h>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
137 #include <stdlib.h>
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
138
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
139 bool run_range(int from, int to)
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
140 {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
141 bool tr = true;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
142 for (int i = from ; i < to ; ++i ) {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
143 printf("%d:",i);
413
d73dc7ad37e4 - fix nameclash due to a previous and bad cleanup
Tassilo Philipp
parents: 410
diff changeset
144 bool r = test_case(i);
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
145 printf("%d\n", r);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
146 tr &= r;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
147 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
148 return tr;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
149 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
150
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
151 extern "C" {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
152
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
153 int main(int argc, char* argv[])
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
154 {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
155 dcTest_initPlatform();
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
156
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
157 bool success = false;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
158 init();
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
159 if (argc == 2) {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
160 int index = atoi(argv[1]);
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
161 success = run_range( index, index+1 );
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
162 } else if (argc == 3) {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
163 int from = atoi(argv[1]);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
164 int to = atoi(argv[2])+1;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
165 success = run_range(from,to);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
166 } else {
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
167 int ncalls = powerfact(NTYPES,NARGS)+1;
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
168 success = run_range(0,ncalls);
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
169 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
170
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
171 printf("result: suite_x86win32std: %d\n", success);
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
172
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
173 dcTest_deInitPlatform();
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
174
410
7608e34098b0 - cleanups, simplifications, some api clarification, ...
Tassilo Philipp
parents: 281
diff changeset
175 return !success;
0
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
176 }
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
177
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
178 } // extern "C"
3e629dc19168 initial from svn dyncall-1745
Daniel Adler
parents:
diff changeset
179