~ubuntu-branches/ubuntu/maverick/swig1.3/maverick

« back to all changes in this revision

Viewing changes to Lib/java/arrays_java.i

  • Committer: Bazaar Package Importer
  • Author(s): Adam Conrad
  • Date: 2005-09-01 18:35:55 UTC
  • mfrom: (2.1.1 sarge)
  • Revision ID: james.westby@ubuntu.com-20050901183555-eq59uwhq8b62e44c
Tags: 1.3.24-1ubuntu4
* Use php5-dev instead of php4-dev, to kick php4 out of main.
* Drop support for generation of pike bindings, as nothing uses it,
  and swig is the only thing keeping pike7.6 in main (Ubuntu #13796)

Show diffs side-by-side

added added

removed removed

Lines of Context:
48
48
  *jarr = JCALL2(Get##JAVATYPE##ArrayElements, jenv, input, 0);
49
49
  if (!*jarr)
50
50
    return 0; %}
51
 
#if __cplusplus
 
51
#ifdef __cplusplus
52
52
%{  *carr = new CTYPE[sz]; %}
53
53
#else
54
54
%{  *carr = (CTYPE*) calloc(sz, sizeof(CTYPE)); %}
138
138
 
139
139
/* The rest of this file has the array typemaps */
140
140
 
141
 
/* Arrays of primitive types.
142
 
 * These typemaps are applied merely by including this file. */                     
143
 
%typemap(jni) bool[ANY]               "jbooleanArray"
144
 
%typemap(jni) signed char[ANY]        "jbyteArray"
145
 
%typemap(jni) unsigned char[ANY]      "jshortArray"
146
 
%typemap(jni) short[ANY]              "jshortArray"
147
 
%typemap(jni) unsigned short[ANY]     "jintArray"
148
 
%typemap(jni) int[ANY]                "jintArray"
149
 
%typemap(jni) unsigned int[ANY]       "jlongArray"
150
 
%typemap(jni) long[ANY]               "jintArray"
151
 
%typemap(jni) unsigned long[ANY]      "jlongArray"
152
 
%typemap(jni) long long[ANY]          "jlongArray"
153
 
/*%typemap(jni) unsigned long long[ANY] "jobjectArray"*/
154
 
%typemap(jni) float[ANY]              "jfloatArray"
155
 
%typemap(jni) double[ANY]             "jdoubleArray"
156
 
 
157
 
%typemap(jtype) bool[ANY]               "boolean[]"
158
 
%typemap(jtype) signed char[ANY]        "byte[]"
159
 
%typemap(jtype) unsigned char[ANY]      "short[]"
160
 
%typemap(jtype) short[ANY]              "short[]"
161
 
%typemap(jtype) unsigned short[ANY]     "int[]"
162
 
%typemap(jtype) int[ANY]                "int[]"
163
 
%typemap(jtype) unsigned int[ANY]       "long[]"
164
 
%typemap(jtype) long[ANY]               "int[]"
165
 
%typemap(jtype) unsigned long[ANY]      "long[]"
166
 
%typemap(jtype) long long[ANY]          "long[]"
167
 
/*%typemap(jtype) unsigned long long[ANY] "java.math.BigInteger[]"*/
168
 
%typemap(jtype) float[ANY]              "float[]"
169
 
%typemap(jtype) double[ANY]             "double[]"
170
 
 
171
 
%typemap(jstype) bool[ANY]               "boolean[]"
172
 
%typemap(jstype) signed char[ANY]        "byte[]"
173
 
%typemap(jstype) unsigned char[ANY]      "short[]"
174
 
%typemap(jstype) short[ANY]              "short[]"
175
 
%typemap(jstype) unsigned short[ANY]     "int[]"
176
 
%typemap(jstype) int[ANY]                "int[]"
177
 
%typemap(jstype) unsigned int[ANY]       "long[]"
178
 
%typemap(jstype) long[ANY]               "int[]"
179
 
%typemap(jstype) unsigned long[ANY]      "long[]"
180
 
%typemap(jstype) long long[ANY]          "long[]"
181
 
/*%typemap(jstype) unsigned long long[ANY] "java.math.BigInteger[]"*/
182
 
%typemap(jstype) float[ANY]              "float[]"
183
 
%typemap(jstype) double[ANY]             "double[]"
184
 
 
185
 
%typemap(javadirectorin) bool[ANY],
186
 
                         signed char[ANY],
187
 
                         unsigned char[ANY],
188
 
                         short[ANY],
189
 
                         unsigned short[ANY],
190
 
                         int[ANY],
191
 
                         unsigned int[ANY],
192
 
                         long[ANY],
193
 
                         unsigned long[ANY],
194
 
                         long long[ANY],
195
 
                         /* unsigned long long[ANY], */
196
 
                         float[ANY],
197
 
                         double[ANY]
198
 
  "$jniinput"
199
 
 
200
 
%typemap(javadirectorout) bool[ANY],
201
 
                          signed char[ANY],
202
 
                          unsigned char[ANY],
203
 
                          short[ANY],
204
 
                          unsigned short[ANY],
205
 
                          int[ANY],
206
 
                          unsigned int[ANY],
207
 
                          long[ANY],
208
 
                          unsigned long[ANY],
209
 
                          long long[ANY],
210
 
                          /* unsigned long long[ANY], */
211
 
                          float[ANY],
212
 
                          double[ANY]
213
 
  "$javacall"
214
 
 
215
141
/* Arrays of primitive types use the following macro. The array typemaps use support functions. */
216
 
%define JAVA_ARRAYS_TYPEMAPS(CTYPE, JNITYPE, JFUNCNAME, JNIDESC)
 
142
%define JAVA_ARRAYS_TYPEMAPS(CTYPE, JTYPE, JNITYPE, JFUNCNAME, JNIDESC)
 
143
 
 
144
%typemap(jni) CTYPE[ANY], CTYPE[]               %{JNITYPE##Array%}
 
145
%typemap(jtype) CTYPE[ANY], CTYPE[]             %{JTYPE[]%}
 
146
%typemap(jstype) CTYPE[ANY], CTYPE[]            %{JTYPE[]%}
217
147
 
218
148
%typemap(in) CTYPE[] (JNITYPE *jarr)
219
149
%{  if (!SWIG_JavaArrayIn##JFUNCNAME(jenv, &jarr, &$1, $input)) return $null; %}
223
153
    return $null;
224
154
  }
225
155
  if (!SWIG_JavaArrayIn##JFUNCNAME(jenv, &jarr, &$1, $input)) return $null; %}
226
 
%typemap(argout) CTYPE[ANY] 
 
156
%typemap(argout) CTYPE[ANY], CTYPE[] 
227
157
%{ SWIG_JavaArrayArgout##JFUNCNAME(jenv, jarr$argnum, $1, $input); %}
228
 
%typemap(directorin,descriptor=JNIDESC) CTYPE[ANY] 
 
158
%typemap(directorin,descriptor=JNIDESC) CTYPE[ANY], CTYPE[]
229
159
%{$input = SWIG_JavaArrayOut##JFUNCNAME(jenv, $1, $1_dim0); %}
230
 
%typemap(out) CTYPE[ANY] 
 
160
%typemap(out) CTYPE[ANY]
231
161
%{$result = SWIG_JavaArrayOut##JFUNCNAME(jenv, $1, $1_dim0); %}
232
 
%typemap(freearg) CTYPE[ANY] 
233
 
#if __cplusplus
 
162
%typemap(out) CTYPE[] 
 
163
%{$result = SWIG_JavaArrayOut##JFUNCNAME(jenv, $1, FillMeInAsSizeCannotBeDeterminedAutomatically); %}
 
164
%typemap(freearg) CTYPE[ANY], CTYPE[] 
 
165
#ifdef __cplusplus
234
166
%{ delete [] $1; %}
235
167
#else
236
168
%{ free($1); %}
237
169
#endif
238
 
%typemap(director_in) CTYPE[ANY] 
239
 
%{$result = SWIG_JavaArrayOut##JFUNCNAME(jenv, $1, $1_dim0); %}
240
 
%typemap(director_out) CTYPE[] (JNITYPE *jarr)
241
 
%{  if (!SWIG_JavaArrayIn##JFUNCNAME(jenv, &jarr, &$1, $input)) return $null; %}
 
170
 
 
171
%typemap(javain) CTYPE[ANY], CTYPE[] "$javainput"
 
172
%typemap(javaout) CTYPE[ANY], CTYPE[] {
 
173
    return $jnicall;
 
174
  }
 
175
 
 
176
%typemap(javadirectorin) CTYPE[ANY], CTYPE[] "$jniinput"
 
177
%typemap(javadirectorout) CTYPE[ANY], CTYPE[] "$javacall"
242
178
 
243
179
%enddef
244
180
 
245
 
JAVA_ARRAYS_TYPEMAPS(bool, jboolean, Bool, "[Z")         /* bool[ANY] */
246
 
JAVA_ARRAYS_TYPEMAPS(signed char, jbyte, Schar, "[B")    /* signed char[ANY] */
247
 
JAVA_ARRAYS_TYPEMAPS(unsigned char, jshort, Uchar, "[S") /* unsigned char[ANY] */
248
 
JAVA_ARRAYS_TYPEMAPS(short, jshort, Short, "[S")         /* short[ANY] */
249
 
JAVA_ARRAYS_TYPEMAPS(unsigned short, jint, Ushort, "[I") /* unsigned short[ANY] */
250
 
JAVA_ARRAYS_TYPEMAPS(int, jint, Int, "[I")               /* int[ANY] */
251
 
JAVA_ARRAYS_TYPEMAPS(unsigned int, jlong, Uint, "[J")    /* unsigned int[ANY] */
252
 
JAVA_ARRAYS_TYPEMAPS(long, jint, Long, "[I")             /* long[ANY] */
253
 
JAVA_ARRAYS_TYPEMAPS(unsigned long, jlong, Ulong, "[J")  /* unsigned long[ANY] */
254
 
JAVA_ARRAYS_TYPEMAPS(long long, jlong, Longlong, "[J")   /* long long[ANY] */
255
 
JAVA_ARRAYS_TYPEMAPS(float, jfloat, Float, "[F")         /* float[ANY] */
256
 
JAVA_ARRAYS_TYPEMAPS(double, jdouble, Double, "[D")      /* double[ANY] */
 
181
JAVA_ARRAYS_TYPEMAPS(bool, boolean, jboolean, Bool, "[Z")       /* bool[ANY] */
 
182
JAVA_ARRAYS_TYPEMAPS(signed char, byte, jbyte, Schar, "[B")     /* signed char[ANY] */
 
183
JAVA_ARRAYS_TYPEMAPS(unsigned char, short, jshort, Uchar, "[S") /* unsigned char[ANY] */
 
184
JAVA_ARRAYS_TYPEMAPS(short, short, jshort, Short, "[S")         /* short[ANY] */
 
185
JAVA_ARRAYS_TYPEMAPS(unsigned short, int, jint, Ushort, "[I")   /* unsigned short[ANY] */
 
186
JAVA_ARRAYS_TYPEMAPS(int, int, jint, Int, "[I")                 /* int[ANY] */
 
187
JAVA_ARRAYS_TYPEMAPS(unsigned int, long, jlong, Uint, "[J")     /* unsigned int[ANY] */
 
188
JAVA_ARRAYS_TYPEMAPS(long, int, jint, Long, "[I")               /* long[ANY] */
 
189
JAVA_ARRAYS_TYPEMAPS(unsigned long, long, jlong, Ulong, "[J")   /* unsigned long[ANY] */
 
190
JAVA_ARRAYS_TYPEMAPS(long long, long, jlong, Longlong, "[J")    /* long long[ANY] */
 
191
JAVA_ARRAYS_TYPEMAPS(float, float, jfloat, Float, "[F")         /* float[ANY] */
 
192
JAVA_ARRAYS_TYPEMAPS(double, double, jdouble, Double, "[D")     /* double[ANY] */
 
193
 
257
194
 
258
195
%typecheck(SWIG_TYPECHECK_BOOL_ARRAY) /* Java boolean[] */
259
 
    bool[ANY]
 
196
    bool[ANY], bool[]
260
197
    ""
261
198
 
262
199
%typecheck(SWIG_TYPECHECK_INT8_ARRAY) /* Java byte[] */
263
 
    signed char[ANY]
 
200
    signed char[ANY], signed char[]
264
201
    ""
265
202
 
266
203
%typecheck(SWIG_TYPECHECK_INT16_ARRAY) /* Java short[] */
267
 
    unsigned char[ANY], 
268
 
    short[ANY] 
 
204
    unsigned char[ANY], unsigned char[],
 
205
    short[ANY], short[]
269
206
    ""
270
207
 
271
208
%typecheck(SWIG_TYPECHECK_INT32_ARRAY) /* Java int[] */
272
 
    unsigned short[ANY], 
273
 
    int[ANY], 
274
 
    long[ANY]
 
209
    unsigned short[ANY], unsigned short[],
 
210
    int[ANY], int[],
 
211
    long[ANY], long[]
275
212
    ""
276
213
 
277
214
%typecheck(SWIG_TYPECHECK_INT64_ARRAY) /* Java long[] */
278
 
    unsigned int[ANY], 
279
 
    unsigned long[ANY], 
280
 
    long long[ANY] 
 
215
    unsigned int[ANY], unsigned int[],
 
216
    unsigned long[ANY], unsigned long[],
 
217
    long long[ANY], long long[]
281
218
    ""
282
219
 
283
220
%typecheck(SWIG_TYPECHECK_INT128_ARRAY) /* Java BigInteger[] */
284
 
    unsigned long long[ANY]
 
221
    unsigned long long[ANY], unsigned long long[]
285
222
    ""
286
223
 
287
224
%typecheck(SWIG_TYPECHECK_FLOAT_ARRAY) /* Java float[] */
288
 
    float[ANY]
 
225
    float[ANY], float[]
289
226
    ""
290
227
 
291
228
%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY) /* Java double[] */
292
 
    double[ANY]
 
229
    double[ANY], double[]
293
230
    ""
294
231
 
295
 
%typemap(javain) bool[ANY],
296
 
                 signed char[ANY],
297
 
                 unsigned char[ANY],
298
 
                 short[ANY],
299
 
                 unsigned short[ANY],
300
 
                 int[ANY],
301
 
                 unsigned int[ANY],
302
 
                 long[ANY],
303
 
                 unsigned long[ANY],
304
 
                 long long[ANY],
305
 
/*               unsigned long long[ANY], */
306
 
                 float[ANY],
307
 
                 double[ANY]
308
 
    "$javainput"
309
 
 
310
 
%typemap(javaout) bool[ANY],
311
 
                  signed char[ANY],
312
 
                  unsigned char[ANY],
313
 
                  short[ANY],
314
 
                  unsigned short[ANY],
315
 
                  int[ANY],
316
 
                  unsigned int[ANY],
317
 
                  long[ANY],
318
 
                  unsigned long[ANY],
319
 
                  long long[ANY],
320
 
/*                unsigned long long[ANY], */
321
 
                  float[ANY],
322
 
                  double[ANY] {
323
 
    return $jnicall;
324
 
  }
325
 
 
326
232
 
327
233
/* Arrays of proxy classes. The typemaps in this macro make it possible to treat an array of 
328
234
 * class/struct/unions as an array of Java classes. 
351
257
  if (!jarr) {
352
258
    return $null;
353
259
  }
354
 
#if __cplusplus
 
260
#ifdef __cplusplus
355
261
  $1 = new $*1_ltype[sz];
356
262
#else
357
263
  $1 = ($1_ltype) calloc(sz, sizeof($*1_ltype));
381
287
  if (!jarr) {
382
288
    return $null;
383
289
  }
384
 
#if __cplusplus
 
290
#ifdef __cplusplus
385
291
  $1 = new $*1_ltype[sz];
386
292
#else
387
293
  $1 = ($1_ltype) calloc(sz, sizeof($*1_ltype));
425
331
}
426
332
 
427
333
%typemap(freearg) ARRAYSOFCLASSES[ANY]
428
 
#if __cplusplus
 
334
#ifdef __cplusplus
429
335
%{ delete [] $1; %}
430
336
#else
431
337
%{ free($1); %}