From: Andrew R. <and...@us...> - 2006-06-11 01:11:06
|
Update of /cvsroot/plplot/plplot/bindings/java In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv9574/bindings/java Modified Files: plplotjavac.i Log Message: The rev argument to plscmap1l can be a null array. Update swig typemaps accordingly. Code for python is only a copy of the existing typemap for now. Does python support the concept of NULL? Alter java example 21 so that it uses this null array. Index: plplotjavac.i =================================================================== RCS file: /cvsroot/plplot/plplot/bindings/java/plplotjavac.i,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -r1.26 -r1.27 --- plplotjavac.i 10 Jun 2006 23:53:11 -0000 1.26 +++ plplotjavac.i 11 Jun 2006 01:10:11 -0000 1.27 @@ -353,6 +353,7 @@ /* This case is used both for PLBOOL and PLINT. Define PLBOOL version * first. (AWI thinks this may be necessary because of the above * typedef PLINT PLBOOL;) + * Also add version which must be one shorter than others or null. */ %typemap(in) PLBOOL *ArrayCkMinus1 { jboolean *jydata = (*jenv)->GetBooleanArrayElements( jenv, $input, 0 ); @@ -374,6 +375,32 @@ return $jnicall; } +%typemap(in) PLBOOL *ArrayCkMinus1Null { + if ($input != NULL) { + jboolean *jydata = (*jenv)->GetBooleanArrayElements( jenv, $input, 0 ); + if((*jenv)->GetArrayLength( jenv, $input ) < Alen-1) { + printf("Vector must be at least length of others minus 1.\n"); + return; + } + setup_array_1d_b( &$1, jydata, Alen); + (*jenv)->ReleaseBooleanArrayElements( jenv, $input, jydata, 0 ); + } + else { + $1 = NULL; + } +} +%typemap(freearg) PLBOOL *ArrayCkMinus1Null { + if ($1 != NULL) + free($1); +} +%typemap(jni) PLBOOL *ArrayCkMinus1Null "jbooleanArray" +%typemap(jtype) PLBOOL *ArrayCkMinus1Null "boolean[]" +%typemap(jstype) PLBOOL *ArrayCkMinus1Null "boolean[]" +%typemap(javain) PLBOOL *ArrayCkMinus1Null "$javainput" +%typemap(javaout) PLBOOL *ArrayCkMinus1Null { + return $jnicall; +} + %typemap(in) PLINT *ArrayCkMinus1 { jint *jydata = (*jenv)->GetIntArrayElements( jenv, $input, 0 ); if((*jenv)->GetArrayLength( jenv, $input ) < Alen-1) { @@ -394,6 +421,32 @@ return $jnicall; } +%typemap(in) PLINT *ArrayCkMinus1Null { + if ($input != NULL) { + jint *jydata = (*jenv)->GetIntArrayElements( jenv, $input, 0 ); + if((*jenv)->GetArrayLength( jenv, $input ) < Alen-1) { + printf("Vector must be at least length of others minus 1.\n"); + return; + } + setup_array_1d_i( &$1, jydata, Alen); + (*jenv)->ReleaseIntArrayElements( jenv, $input, jydata, 0 ); + } + else { + $1 = NULL; + } +} +%typemap(freearg) PLINT *ArrayCkMinus1Null { + if ($1 != NULL) + free($1); +} +%typemap(jni) PLINT *ArrayCkMinus1Null "jintArray" +%typemap(jtype) PLINT *ArrayCkMinus1Null "int[]" +%typemap(jstype) PLINT *ArrayCkMinus1Null "int[]" +%typemap(javain) PLINT *ArrayCkMinus1Null "$javainput" +%typemap(javaout) PLINT *ArrayCkMinus1Null { + return $jnicall; +} + /* No length but remember size to check others */ %typemap(in) PLINT *Array { jint *jydata = (*jenv)->GetIntArrayElements( jenv, $input, 0 ); |