minor corrections
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@6534 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
bfeadee81c
commit
c2f6f9794c
1 changed files with 45 additions and 66 deletions
|
|
@ -62,34 +62,27 @@ There are no char *INPUT typemaps, however you can apply the signed char * typem
|
||||||
void f(char *input);
|
void f(char *input);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
%define INPUT_TYPEMAP(CTYPE, JNITYPE, JTYPE, JNIDESC)
|
%define INPUT_TYPEMAP(TYPE, JNITYPE, JTYPE, JNIDESC)
|
||||||
%typemap(jni) CTYPE *INPUT "JNITYPE"
|
%typemap(jni) TYPE *INPUT, TYPE &INPUT "JNITYPE"
|
||||||
%typemap(jtype) CTYPE *INPUT "JTYPE"
|
%typemap(jtype) TYPE *INPUT, TYPE &INPUT "JTYPE"
|
||||||
%typemap(jstype) CTYPE *INPUT "JTYPE"
|
%typemap(jstype) TYPE *INPUT, TYPE &INPUT "JTYPE"
|
||||||
%typemap(javain) CTYPE *INPUT "$javainput"
|
%typemap(javain) TYPE *INPUT, TYPE &INPUT "$javainput"
|
||||||
%typemap(javadirectorin) CTYPE *INPUT "$jniinput"
|
%typemap(javadirectorin) TYPE *INPUT, TYPE &INPUT "$jniinput"
|
||||||
%typemap(javadirectorout) CTYPE *INPUT "$javacall"
|
%typemap(javadirectorout) TYPE *INPUT, TYPE &INPUT "$javacall"
|
||||||
|
|
||||||
%typemap(jni) CTYPE &INPUT "JNITYPE"
|
%typemap(in) TYPE *INPUT, TYPE &INPUT
|
||||||
%typemap(jtype) CTYPE &INPUT "JTYPE"
|
|
||||||
%typemap(jstype) CTYPE &INPUT "JTYPE"
|
|
||||||
%typemap(javain) CTYPE &INPUT "$javainput"
|
|
||||||
%typemap(javadirectorin) CTYPE *INPUT "$jniinput"
|
|
||||||
%typemap(javadirectorout) CTYPE *INPUT "$javacall"
|
|
||||||
|
|
||||||
%typemap(in) CTYPE *INPUT, CTYPE &INPUT
|
|
||||||
%{ $1 = ($1_ltype)&$input; %}
|
%{ $1 = ($1_ltype)&$input; %}
|
||||||
|
|
||||||
%typemap(directorin,descriptor=JNIDESC) CYTPE &INPUT
|
%typemap(directorin,descriptor=JNIDESC) CYTPE &INPUT
|
||||||
%{ *(($&1_ltype) $input) = (JNITYPE *) &$1; %}
|
%{ *(($&1_ltype) $input) = (JNITYPE *) &$1; %}
|
||||||
|
|
||||||
%typemap(directorin,descriptor=JNIDESC) CTYPE *INPUT
|
%typemap(directorin,descriptor=JNIDESC) TYPE *INPUT
|
||||||
%{ *(($&1_ltype) $input) = (JNITYPE *) $1; %}
|
%{ *(($&1_ltype) $input) = (JNITYPE *) $1; %}
|
||||||
|
|
||||||
%typemap(freearg) CTYPE *INPUT, CTYPE &INPUT ""
|
%typemap(freearg) TYPE *INPUT, TYPE &INPUT ""
|
||||||
|
|
||||||
%typemap(typecheck) CTYPE *INPUT = CTYPE;
|
%typemap(typecheck) TYPE *INPUT = TYPE;
|
||||||
%typemap(typecheck) CTYPE &INPUT = CTYPE;
|
%typemap(typecheck) TYPE &INPUT = TYPE;
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
INPUT_TYPEMAP(bool, jboolean, boolean, "Z");
|
INPUT_TYPEMAP(bool, jboolean, boolean, "Z");
|
||||||
|
|
@ -190,8 +183,8 @@ or you can use the %apply directive :
|
||||||
The Java output of the function would be the function return value and the
|
The Java output of the function would be the function return value and the
|
||||||
value in the single element array. In Java you would use it like this:
|
value in the single element array. In Java you would use it like this:
|
||||||
|
|
||||||
double[] intptr = {0};
|
double[] ptr = {0.0};
|
||||||
double fraction = modulename.modf(5,intptr);
|
double fraction = modulename.modf(5.0,ptr);
|
||||||
|
|
||||||
There are no char *OUTPUT typemaps, however you can apply the signed char * typemaps instead:
|
There are no char *OUTPUT typemaps, however you can apply the signed char * typemaps instead:
|
||||||
%include "typemaps.i"
|
%include "typemaps.i"
|
||||||
|
|
@ -202,22 +195,15 @@ There are no char *OUTPUT typemaps, however you can apply the signed char * type
|
||||||
/* Java BigInteger[] */
|
/* Java BigInteger[] */
|
||||||
%typecheck(SWIG_TYPECHECK_INT128_ARRAY) SWIGBIGINTEGERARRAY ""
|
%typecheck(SWIG_TYPECHECK_INT128_ARRAY) SWIGBIGINTEGERARRAY ""
|
||||||
|
|
||||||
%define OUTPUT_TYPEMAP(CTYPE, JNITYPE, JTYPE, JAVATYPE, JNIDESC, TYPECHECKTYPE)
|
%define OUTPUT_TYPEMAP(TYPE, JNITYPE, JTYPE, JAVATYPE, JNIDESC, TYPECHECKTYPE)
|
||||||
%typemap(jni) CTYPE *OUTPUT %{JNITYPE##Array%}
|
%typemap(jni) TYPE *OUTPUT, TYPE &OUTPUT %{JNITYPE##Array%}
|
||||||
%typemap(jtype) CTYPE *OUTPUT "JTYPE[]"
|
%typemap(jtype) TYPE *OUTPUT, TYPE &OUTPUT "JTYPE[]"
|
||||||
%typemap(jstype) CTYPE *OUTPUT "JTYPE[]"
|
%typemap(jstype) TYPE *OUTPUT, TYPE &OUTPUT "JTYPE[]"
|
||||||
%typemap(javain) CTYPE *OUTPUT "$javainput"
|
%typemap(javain) TYPE *OUTPUT, TYPE &OUTPUT "$javainput"
|
||||||
%typemap(javadirectorin) CTYPE *OUTPUT "$jniinput"
|
%typemap(javadirectorin) TYPE *OUTPUT, TYPE &OUTPUT "$jniinput"
|
||||||
%typemap(javadirectorout) CTYPE *OUTPUT "$javacall"
|
%typemap(javadirectorout) TYPE *OUTPUT, TYPE &OUTPUT "$javacall"
|
||||||
|
|
||||||
%typemap(jni) CTYPE &OUTPUT %{JNITYPE##Array%}
|
%typemap(in) TYPE *OUTPUT($*1_ltype temp), TYPE &OUTPUT($*1_ltype temp)
|
||||||
%typemap(jtype) CTYPE &OUTPUT "JTYPE[]"
|
|
||||||
%typemap(jstype) CTYPE &OUTPUT "JTYPE[]"
|
|
||||||
%typemap(javain) CTYPE &OUTPUT "$javainput"
|
|
||||||
%typemap(javadirectorin) CTYPE &OUTPUT "$jniinput"
|
|
||||||
%typemap(javadirectorout) CTYPE &OUTPUT "$javacall"
|
|
||||||
|
|
||||||
%typemap(in) CTYPE *OUTPUT($*1_ltype temp), CTYPE &OUTPUT($*1_ltype temp)
|
|
||||||
{
|
{
|
||||||
if (!$input) {
|
if (!$input) {
|
||||||
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
|
||||||
|
|
@ -230,24 +216,24 @@ There are no char *OUTPUT typemaps, however you can apply the signed char * type
|
||||||
$1 = &temp;
|
$1 = &temp;
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(directorin,descriptor=JNIDESC) CTYPE &OUTPUT
|
%typemap(directorin,descriptor=JNIDESC) TYPE &OUTPUT
|
||||||
%{ *(($&1_ltype) $input = &$1; %}
|
%{ *(($&1_ltype) $input = &$1; %}
|
||||||
|
|
||||||
%typemap(directorin,descriptor=JNIDESC) CTYPE *OUTPUT
|
%typemap(directorin,descriptor=JNIDESC) TYPE *OUTPUT
|
||||||
%{
|
%{
|
||||||
#error "Need to provide OUT directorin typemap, CTYPE array length is unknown"
|
#error "Need to provide OUT directorin typemap, TYPE array length is unknown"
|
||||||
%}
|
%}
|
||||||
|
|
||||||
%typemap(freearg) CTYPE *OUTPUT, CTYPE &OUTPUT ""
|
%typemap(freearg) TYPE *OUTPUT, TYPE &OUTPUT ""
|
||||||
|
|
||||||
%typemap(argout) CTYPE *OUTPUT, CTYPE &OUTPUT
|
%typemap(argout) TYPE *OUTPUT, TYPE &OUTPUT
|
||||||
{
|
{
|
||||||
JNITYPE jvalue = (JNITYPE)temp$argnum;
|
JNITYPE jvalue = (JNITYPE)temp$argnum;
|
||||||
JCALL4(Set##JAVATYPE##ArrayRegion, jenv, $input, 0, 1, &jvalue);
|
JCALL4(Set##JAVATYPE##ArrayRegion, jenv, $input, 0, 1, &jvalue);
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(typecheck) CTYPE *INOUT = TYPECHECKTYPE;
|
%typemap(typecheck) TYPE *INOUT = TYPECHECKTYPE;
|
||||||
%typemap(typecheck) CTYPE &INOUT = TYPECHECKTYPE;
|
%typemap(typecheck) TYPE &INOUT = TYPECHECKTYPE;
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
OUTPUT_TYPEMAP(bool, jboolean, boolean, Boolean, "[Ljava/lang/Boolean;", jbooleanArray);
|
OUTPUT_TYPEMAP(bool, jboolean, boolean, Boolean, "[Ljava/lang/Boolean;", jbooleanArray);
|
||||||
|
|
@ -333,7 +319,7 @@ input value - the input must be an array with a minimum of one element.
|
||||||
The element in the array is the input and the output is the element in
|
The element in the array is the input and the output is the element in
|
||||||
the array.
|
the array.
|
||||||
|
|
||||||
double x[] = {5};
|
double x[] = {5.0};
|
||||||
neg(x);
|
neg(x);
|
||||||
|
|
||||||
The implementation of the OUTPUT and INOUT typemaps is different to other
|
The implementation of the OUTPUT and INOUT typemaps is different to other
|
||||||
|
|
@ -346,22 +332,15 @@ There are no char *INOUT typemaps, however you can apply the signed char * typem
|
||||||
void f(char *inout);
|
void f(char *inout);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
%define INOUT_TYPEMAP(CTYPE, JNITYPE, JTYPE, JAVATYPE, JNIDESC, TYPECHECKTYPE)
|
%define INOUT_TYPEMAP(TYPE, JNITYPE, JTYPE, JAVATYPE, JNIDESC, TYPECHECKTYPE)
|
||||||
%typemap(jni) CTYPE *INOUT %{JNITYPE##Array%}
|
%typemap(jni) TYPE *INOUT, TYPE &INOUT %{JNITYPE##Array%}
|
||||||
%typemap(jtype) CTYPE *INOUT "JTYPE[]"
|
%typemap(jtype) TYPE *INOUT, TYPE &INOUT "JTYPE[]"
|
||||||
%typemap(jstype) CTYPE *INOUT "JTYPE[]"
|
%typemap(jstype) TYPE *INOUT, TYPE &INOUT "JTYPE[]"
|
||||||
%typemap(javain) CTYPE *INOUT "$javainput"
|
%typemap(javain) TYPE *INOUT, TYPE &INOUT "$javainput"
|
||||||
%typemap(javadirectorin) CTYPE *INOUT "$jniinput"
|
%typemap(javadirectorin) TYPE *INOUT, TYPE &INOUT "$jniinput"
|
||||||
%typemap(javadirectorout) CTYPE *INOUT "$javacall"
|
%typemap(javadirectorout) TYPE *INOUT, TYPE &INOUT "$javacall"
|
||||||
|
|
||||||
%typemap(jni) CTYPE &INOUT %{JNITYPE##Array%}
|
%typemap(in) TYPE *INOUT, TYPE &INOUT {
|
||||||
%typemap(jtype) CTYPE &INOUT "JTYPE[]"
|
|
||||||
%typemap(jstype) CTYPE &INOUT "JTYPE[]"
|
|
||||||
%typemap(javain) CTYPE &INOUT "$javainput"
|
|
||||||
%typemap(javadirectorin) CTYPE &INOUT "$jniinput"
|
|
||||||
%typemap(javadirectorout) CTYPE &INOUT "$javacall"
|
|
||||||
|
|
||||||
%typemap(in) CTYPE *INOUT, CTYPE &INOUT {
|
|
||||||
if (!$input) {
|
if (!$input) {
|
||||||
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
|
SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "array null");
|
||||||
return $null;
|
return $null;
|
||||||
|
|
@ -373,21 +352,21 @@ There are no char *INOUT typemaps, however you can apply the signed char * typem
|
||||||
$1 = ($1_ltype) JCALL2(Get##JAVATYPE##ArrayElements, jenv, $input, 0);
|
$1 = ($1_ltype) JCALL2(Get##JAVATYPE##ArrayElements, jenv, $input, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(directorin,descriptor=JNIDESC) CTYPE &INOUT
|
%typemap(directorin,descriptor=JNIDESC) TYPE &INOUT
|
||||||
%{ *(($&1_ltype)&$input) = &$1; %}
|
%{ *(($&1_ltype)&$input) = &$1; %}
|
||||||
|
|
||||||
%typemap(directorin,descriptor=JNIDESC) CTYPE *INOUT, CTYPE &INOUT
|
%typemap(directorin,descriptor=JNIDESC) TYPE *INOUT, TYPE &INOUT
|
||||||
{
|
{
|
||||||
#error "Need to provide INOUT directorin typemap, CTYPE array length is unknown"
|
#error "Need to provide INOUT directorin typemap, TYPE array length is unknown"
|
||||||
}
|
}
|
||||||
|
|
||||||
%typemap(freearg) CTYPE *INOUT, CTYPE &INOUT ""
|
%typemap(freearg) TYPE *INOUT, TYPE &INOUT ""
|
||||||
|
|
||||||
%typemap(argout) CTYPE *INOUT, CTYPE &INOUT
|
%typemap(argout) TYPE *INOUT, TYPE &INOUT
|
||||||
{ JCALL3(Release##JAVATYPE##ArrayElements, jenv, $input, (JNITYPE *)$1, 0); }
|
{ JCALL3(Release##JAVATYPE##ArrayElements, jenv, $input, (JNITYPE *)$1, 0); }
|
||||||
|
|
||||||
%typemap(typecheck) CTYPE *INOUT = TYPECHECKTYPE;
|
%typemap(typecheck) TYPE *INOUT = TYPECHECKTYPE;
|
||||||
%typemap(typecheck) CTYPE &INOUT = TYPECHECKTYPE;
|
%typemap(typecheck) TYPE &INOUT = TYPECHECKTYPE;
|
||||||
%enddef
|
%enddef
|
||||||
|
|
||||||
INOUT_TYPEMAP(bool, jboolean, boolean, Boolean, "[Ljava/lang/Boolean;", jbooleanArray);
|
INOUT_TYPEMAP(bool, jboolean, boolean, Boolean, "[Ljava/lang/Boolean;", jbooleanArray);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue