diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2017-01-24 20:04:20 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2017-01-24 23:47:30 +0000 |
commit | 8a4ab380a16b2bbf520ad62d00d519d58a94ff5e (patch) | |
tree | 6651d8ba80603bf373b7e6205472635f05ab1b78 /Lib/java | |
parent | 2abdb50f60b4390acc2263af385b72290c5b31ea (diff) | |
download | swig-8a4ab380a16b2bbf520ad62d00d519d58a94ff5e.tar.gz |
Java director typemaps and test tweak
- Fix java_director_typemaps test name clash ensuring parallel tests work
- Replace assert with code that is guaranteed to run
- Nicer generated code from directorargout typemap
Diffstat (limited to 'Lib/java')
-rw-r--r-- | Lib/java/java.swg | 5 | ||||
-rw-r--r-- | Lib/java/typemaps.i | 8 |
2 files changed, 6 insertions, 7 deletions
diff --git a/Lib/java/java.swg b/Lib/java/java.swg index cd61a2a94..d173cb627 100644 --- a/Lib/java/java.swg +++ b/Lib/java/java.swg @@ -1366,9 +1366,8 @@ SWIG_PROXY_CONSTRUCTOR(true, true, SWIGTYPE) } Swig::LocalRefGuard $1_refguard(jenv, $input); } -%typemap(directorargout) (char *STRING, size_t LENGTH) { - if ($input && $1) (jenv)->GetByteArrayRegion($input, 0, (jsize)$2, (jbyte *)$1); -} +%typemap(directorargout, noblock=1) (char *STRING, size_t LENGTH) +{ if ($input && $1) JCALL4(GetByteArrayRegion, jenv, $input, 0, (jsize)$2, (jbyte *)$1); } %typemap(javadirectorin, descriptor="[B") (char *STRING, size_t LENGTH) "$jniinput" %apply (char *STRING, size_t LENGTH) { (char *STRING, int LENGTH) } diff --git a/Lib/java/typemaps.i b/Lib/java/typemaps.i index 846875f19..4170915b3 100644 --- a/Lib/java/typemaps.i +++ b/Lib/java/typemaps.i @@ -372,10 +372,10 @@ There are no char *INOUT typemaps, however you can apply the signed char * typem { JCALL3(Release##JAVATYPE##ArrayElements, jenv, $input, (JNITYPE *)$1, 0); } %typemap(directorin,descriptor=JNIDESC) TYPE &INOUT %{ - $input = JCALL1(New##JAVATYPE##Array, jenv, 1); - JNITYPE $1_jvalue = (JNITYPE)$1; - JCALL4(Set##JAVATYPE##ArrayRegion, jenv, $input, 0, 1, &$1_jvalue); - Swig::LocalRefGuard $1_refguard(jenv, $input); %} + $input = JCALL1(New##JAVATYPE##Array, jenv, 1); + JNITYPE $1_jvalue = (JNITYPE)$1; + JCALL4(Set##JAVATYPE##ArrayRegion, jenv, $input, 0, 1, &$1_jvalue); + Swig::LocalRefGuard $1_refguard(jenv, $input); %} %typemap(directorin,descriptor=JNIDESC) TYPE *INOUT %{ $input = JCALL1(New##JAVATYPE##Array, jenv, 1); |