mods so that a %apply will work on pointers, eg %apply int[] {int*}
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6847 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
e6ff90147e
commit
6722b2ea89
1 changed files with 45 additions and 139 deletions
|
|
@ -138,82 +138,12 @@ JAVA_ARRAYS_IMPL(double, jdouble, Double, Double) /* double[] */
|
||||||
|
|
||||||
/* The rest of this file has the array typemaps */
|
/* The rest of this file has the array typemaps */
|
||||||
|
|
||||||
/* Arrays of primitive types.
|
|
||||||
* These typemaps are applied merely by including this file. */
|
|
||||||
%typemap(jni) bool[ANY] "jbooleanArray"
|
|
||||||
%typemap(jni) signed char[ANY] "jbyteArray"
|
|
||||||
%typemap(jni) unsigned char[ANY] "jshortArray"
|
|
||||||
%typemap(jni) short[ANY] "jshortArray"
|
|
||||||
%typemap(jni) unsigned short[ANY] "jintArray"
|
|
||||||
%typemap(jni) int[ANY] "jintArray"
|
|
||||||
%typemap(jni) unsigned int[ANY] "jlongArray"
|
|
||||||
%typemap(jni) long[ANY] "jintArray"
|
|
||||||
%typemap(jni) unsigned long[ANY] "jlongArray"
|
|
||||||
%typemap(jni) long long[ANY] "jlongArray"
|
|
||||||
/*%typemap(jni) unsigned long long[ANY] "jobjectArray"*/
|
|
||||||
%typemap(jni) float[ANY] "jfloatArray"
|
|
||||||
%typemap(jni) double[ANY] "jdoubleArray"
|
|
||||||
|
|
||||||
%typemap(jtype) bool[ANY] "boolean[]"
|
|
||||||
%typemap(jtype) signed char[ANY] "byte[]"
|
|
||||||
%typemap(jtype) unsigned char[ANY] "short[]"
|
|
||||||
%typemap(jtype) short[ANY] "short[]"
|
|
||||||
%typemap(jtype) unsigned short[ANY] "int[]"
|
|
||||||
%typemap(jtype) int[ANY] "int[]"
|
|
||||||
%typemap(jtype) unsigned int[ANY] "long[]"
|
|
||||||
%typemap(jtype) long[ANY] "int[]"
|
|
||||||
%typemap(jtype) unsigned long[ANY] "long[]"
|
|
||||||
%typemap(jtype) long long[ANY] "long[]"
|
|
||||||
/*%typemap(jtype) unsigned long long[ANY] "java.math.BigInteger[]"*/
|
|
||||||
%typemap(jtype) float[ANY] "float[]"
|
|
||||||
%typemap(jtype) double[ANY] "double[]"
|
|
||||||
|
|
||||||
%typemap(jstype) bool[ANY] "boolean[]"
|
|
||||||
%typemap(jstype) signed char[ANY] "byte[]"
|
|
||||||
%typemap(jstype) unsigned char[ANY] "short[]"
|
|
||||||
%typemap(jstype) short[ANY] "short[]"
|
|
||||||
%typemap(jstype) unsigned short[ANY] "int[]"
|
|
||||||
%typemap(jstype) int[ANY] "int[]"
|
|
||||||
%typemap(jstype) unsigned int[ANY] "long[]"
|
|
||||||
%typemap(jstype) long[ANY] "int[]"
|
|
||||||
%typemap(jstype) unsigned long[ANY] "long[]"
|
|
||||||
%typemap(jstype) long long[ANY] "long[]"
|
|
||||||
/*%typemap(jstype) unsigned long long[ANY] "java.math.BigInteger[]"*/
|
|
||||||
%typemap(jstype) float[ANY] "float[]"
|
|
||||||
%typemap(jstype) double[ANY] "double[]"
|
|
||||||
|
|
||||||
%typemap(javadirectorin) bool[ANY],
|
|
||||||
signed char[ANY],
|
|
||||||
unsigned char[ANY],
|
|
||||||
short[ANY],
|
|
||||||
unsigned short[ANY],
|
|
||||||
int[ANY],
|
|
||||||
unsigned int[ANY],
|
|
||||||
long[ANY],
|
|
||||||
unsigned long[ANY],
|
|
||||||
long long[ANY],
|
|
||||||
/* unsigned long long[ANY], */
|
|
||||||
float[ANY],
|
|
||||||
double[ANY]
|
|
||||||
"$jniinput"
|
|
||||||
|
|
||||||
%typemap(javadirectorout) bool[ANY],
|
|
||||||
signed char[ANY],
|
|
||||||
unsigned char[ANY],
|
|
||||||
short[ANY],
|
|
||||||
unsigned short[ANY],
|
|
||||||
int[ANY],
|
|
||||||
unsigned int[ANY],
|
|
||||||
long[ANY],
|
|
||||||
unsigned long[ANY],
|
|
||||||
long long[ANY],
|
|
||||||
/* unsigned long long[ANY], */
|
|
||||||
float[ANY],
|
|
||||||
double[ANY]
|
|
||||||
"$javacall"
|
|
||||||
|
|
||||||
/* Arrays of primitive types use the following macro. The array typemaps use support functions. */
|
/* Arrays of primitive types use the following macro. The array typemaps use support functions. */
|
||||||
%define JAVA_ARRAYS_TYPEMAPS(CTYPE, JNITYPE, JFUNCNAME, JNIDESC)
|
%define JAVA_ARRAYS_TYPEMAPS(CTYPE, JTYPE, JNITYPE, JFUNCNAME, JNIDESC)
|
||||||
|
|
||||||
|
%typemap(jni) CTYPE[ANY], CTYPE[] %{JNITYPE##Array%}
|
||||||
|
%typemap(jtype) CTYPE[ANY], CTYPE[] %{JTYPE[]%}
|
||||||
|
%typemap(jstype) CTYPE[ANY], CTYPE[] %{JTYPE[]%}
|
||||||
|
|
||||||
%typemap(in) CTYPE[] (JNITYPE *jarr)
|
%typemap(in) CTYPE[] (JNITYPE *jarr)
|
||||||
%{ if (!SWIG_JavaArrayIn##JFUNCNAME(jenv, &jarr, &$1, $input)) return $null; %}
|
%{ if (!SWIG_JavaArrayIn##JFUNCNAME(jenv, &jarr, &$1, $input)) return $null; %}
|
||||||
|
|
@ -223,106 +153,82 @@ JAVA_ARRAYS_IMPL(double, jdouble, Double, Double) /* double[] */
|
||||||
return $null;
|
return $null;
|
||||||
}
|
}
|
||||||
if (!SWIG_JavaArrayIn##JFUNCNAME(jenv, &jarr, &$1, $input)) return $null; %}
|
if (!SWIG_JavaArrayIn##JFUNCNAME(jenv, &jarr, &$1, $input)) return $null; %}
|
||||||
%typemap(argout) CTYPE[ANY]
|
%typemap(argout) CTYPE[ANY], CTYPE[]
|
||||||
%{ SWIG_JavaArrayArgout##JFUNCNAME(jenv, jarr$argnum, $1, $input); %}
|
%{ SWIG_JavaArrayArgout##JFUNCNAME(jenv, jarr$argnum, $1, $input); %}
|
||||||
%typemap(directorin,descriptor=JNIDESC) CTYPE[ANY]
|
%typemap(directorin,descriptor=JNIDESC) CTYPE[ANY], CTYPE[]
|
||||||
%{$input = SWIG_JavaArrayOut##JFUNCNAME(jenv, $1, $1_dim0); %}
|
%{$input = SWIG_JavaArrayOut##JFUNCNAME(jenv, $1, $1_dim0); %}
|
||||||
%typemap(out) CTYPE[ANY]
|
%typemap(out) CTYPE[ANY]
|
||||||
%{$result = SWIG_JavaArrayOut##JFUNCNAME(jenv, $1, $1_dim0); %}
|
%{$result = SWIG_JavaArrayOut##JFUNCNAME(jenv, $1, $1_dim0); %}
|
||||||
%typemap(freearg) CTYPE[ANY]
|
%typemap(out) CTYPE[]
|
||||||
|
%{$result = SWIG_JavaArrayOut##JFUNCNAME(jenv, $1, FillMeInAsSizeCannotBeDeterminedAutomatically); %}
|
||||||
|
%typemap(freearg) CTYPE[ANY], CTYPE[]
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
%{ delete [] $1; %}
|
%{ delete [] $1; %}
|
||||||
#else
|
#else
|
||||||
%{ free($1); %}
|
%{ free($1); %}
|
||||||
#endif
|
#endif
|
||||||
%typemap(director_in) CTYPE[ANY]
|
|
||||||
%{$result = SWIG_JavaArrayOut##JFUNCNAME(jenv, $1, $1_dim0); %}
|
%typemap(javain) CTYPE[ANY], CTYPE[] "$javainput"
|
||||||
%typemap(director_out) CTYPE[] (JNITYPE *jarr)
|
%typemap(javaout) CTYPE[ANY], CTYPE[] {
|
||||||
%{ if (!SWIG_JavaArrayIn##JFUNCNAME(jenv, &jarr, &$1, $input)) return $null; %}
|
return $jnicall;
|
||||||
|
}
|
||||||
|
|
||||||
|
%typemap(javadirectorin) CTYPE[ANY], CTYPE[] "$jniinput"
|
||||||
|
%typemap(javadirectorout) CTYPE[ANY], CTYPE[] "$javacall"
|
||||||
|
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
JAVA_ARRAYS_TYPEMAPS(bool, jboolean, Bool, "[Z") /* bool[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(bool, boolean, jboolean, Bool, "[Z") /* bool[ANY] */
|
||||||
JAVA_ARRAYS_TYPEMAPS(signed char, jbyte, Schar, "[B") /* signed char[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(signed char, byte, jbyte, Schar, "[B") /* signed char[ANY] */
|
||||||
JAVA_ARRAYS_TYPEMAPS(unsigned char, jshort, Uchar, "[S") /* unsigned char[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(unsigned char, short, jshort, Uchar, "[S") /* unsigned char[ANY] */
|
||||||
JAVA_ARRAYS_TYPEMAPS(short, jshort, Short, "[S") /* short[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(short, short, jshort, Short, "[S") /* short[ANY] */
|
||||||
JAVA_ARRAYS_TYPEMAPS(unsigned short, jint, Ushort, "[I") /* unsigned short[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(unsigned short, int, jint, Ushort, "[I") /* unsigned short[ANY] */
|
||||||
JAVA_ARRAYS_TYPEMAPS(int, jint, Int, "[I") /* int[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(int, int, jint, Int, "[I") /* int[ANY] */
|
||||||
JAVA_ARRAYS_TYPEMAPS(unsigned int, jlong, Uint, "[J") /* unsigned int[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(unsigned int, long, jlong, Uint, "[J") /* unsigned int[ANY] */
|
||||||
JAVA_ARRAYS_TYPEMAPS(long, jint, Long, "[I") /* long[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(long, int, jint, Long, "[I") /* long[ANY] */
|
||||||
JAVA_ARRAYS_TYPEMAPS(unsigned long, jlong, Ulong, "[J") /* unsigned long[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(unsigned long, long, jlong, Ulong, "[J") /* unsigned long[ANY] */
|
||||||
JAVA_ARRAYS_TYPEMAPS(long long, jlong, Longlong, "[J") /* long long[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(long long, long, jlong, Longlong, "[J") /* long long[ANY] */
|
||||||
JAVA_ARRAYS_TYPEMAPS(float, jfloat, Float, "[F") /* float[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(float, float, jfloat, Float, "[F") /* float[ANY] */
|
||||||
JAVA_ARRAYS_TYPEMAPS(double, jdouble, Double, "[D") /* double[ANY] */
|
JAVA_ARRAYS_TYPEMAPS(double, double, jdouble, Double, "[D") /* double[ANY] */
|
||||||
|
|
||||||
|
|
||||||
%typecheck(SWIG_TYPECHECK_BOOL_ARRAY) /* Java boolean[] */
|
%typecheck(SWIG_TYPECHECK_BOOL_ARRAY) /* Java boolean[] */
|
||||||
bool[ANY]
|
bool[ANY], bool[]
|
||||||
""
|
""
|
||||||
|
|
||||||
%typecheck(SWIG_TYPECHECK_INT8_ARRAY) /* Java byte[] */
|
%typecheck(SWIG_TYPECHECK_INT8_ARRAY) /* Java byte[] */
|
||||||
signed char[ANY]
|
signed char[ANY], signed char[]
|
||||||
""
|
""
|
||||||
|
|
||||||
%typecheck(SWIG_TYPECHECK_INT16_ARRAY) /* Java short[] */
|
%typecheck(SWIG_TYPECHECK_INT16_ARRAY) /* Java short[] */
|
||||||
unsigned char[ANY],
|
unsigned char[ANY], unsigned char[],
|
||||||
short[ANY]
|
short[ANY], short[]
|
||||||
""
|
""
|
||||||
|
|
||||||
%typecheck(SWIG_TYPECHECK_INT32_ARRAY) /* Java int[] */
|
%typecheck(SWIG_TYPECHECK_INT32_ARRAY) /* Java int[] */
|
||||||
unsigned short[ANY],
|
unsigned short[ANY], unsigned short[],
|
||||||
int[ANY],
|
int[ANY], int[],
|
||||||
long[ANY]
|
long[ANY], long[]
|
||||||
""
|
""
|
||||||
|
|
||||||
%typecheck(SWIG_TYPECHECK_INT64_ARRAY) /* Java long[] */
|
%typecheck(SWIG_TYPECHECK_INT64_ARRAY) /* Java long[] */
|
||||||
unsigned int[ANY],
|
unsigned int[ANY], unsigned int[],
|
||||||
unsigned long[ANY],
|
unsigned long[ANY], unsigned long[],
|
||||||
long long[ANY]
|
long long[ANY], long long[]
|
||||||
""
|
""
|
||||||
|
|
||||||
%typecheck(SWIG_TYPECHECK_INT128_ARRAY) /* Java BigInteger[] */
|
%typecheck(SWIG_TYPECHECK_INT128_ARRAY) /* Java BigInteger[] */
|
||||||
unsigned long long[ANY]
|
unsigned long long[ANY], unsigned long long[]
|
||||||
""
|
""
|
||||||
|
|
||||||
%typecheck(SWIG_TYPECHECK_FLOAT_ARRAY) /* Java float[] */
|
%typecheck(SWIG_TYPECHECK_FLOAT_ARRAY) /* Java float[] */
|
||||||
float[ANY]
|
float[ANY], float[]
|
||||||
""
|
""
|
||||||
|
|
||||||
%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY) /* Java double[] */
|
%typecheck(SWIG_TYPECHECK_DOUBLE_ARRAY) /* Java double[] */
|
||||||
double[ANY]
|
double[ANY], double[]
|
||||||
""
|
""
|
||||||
|
|
||||||
%typemap(javain) bool[ANY],
|
|
||||||
signed char[ANY],
|
|
||||||
unsigned char[ANY],
|
|
||||||
short[ANY],
|
|
||||||
unsigned short[ANY],
|
|
||||||
int[ANY],
|
|
||||||
unsigned int[ANY],
|
|
||||||
long[ANY],
|
|
||||||
unsigned long[ANY],
|
|
||||||
long long[ANY],
|
|
||||||
/* unsigned long long[ANY], */
|
|
||||||
float[ANY],
|
|
||||||
double[ANY]
|
|
||||||
"$javainput"
|
|
||||||
|
|
||||||
%typemap(javaout) bool[ANY],
|
|
||||||
signed char[ANY],
|
|
||||||
unsigned char[ANY],
|
|
||||||
short[ANY],
|
|
||||||
unsigned short[ANY],
|
|
||||||
int[ANY],
|
|
||||||
unsigned int[ANY],
|
|
||||||
long[ANY],
|
|
||||||
unsigned long[ANY],
|
|
||||||
long long[ANY],
|
|
||||||
/* unsigned long long[ANY], */
|
|
||||||
float[ANY],
|
|
||||||
double[ANY] {
|
|
||||||
return $jnicall;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/* Arrays of proxy classes. The typemaps in this macro make it possible to treat an array of
|
/* Arrays of proxy classes. The typemaps in this macro make it possible to treat an array of
|
||||||
* class/struct/unions as an array of Java classes.
|
* class/struct/unions as an array of Java classes.
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue