summaryrefslogtreecommitdiff
path: root/Lib/java
diff options
context:
space:
mode:
authorAndrew Galante <drew@perfectco.com>2018-02-20 10:36:09 -0800
committerAndrew Galante <drew@perfectco.com>2018-02-20 10:36:09 -0800
commit575b250b249cc4ba5a98dfb36f767256a16c1007 (patch)
tree8fbf3071cc67cfdf71bab8e0a8e4c40893895c09 /Lib/java
parent36b3c56a062b700f1a13f98fe52419f3f5fd498c (diff)
downloadswig-575b250b249cc4ba5a98dfb36f767256a16c1007.tar.gz
Don't write-back buffer into Java array when calling const-ptr c function
Diffstat (limited to 'Lib/java')
-rw-r--r--Lib/java/java.swg5
1 files changed, 4 insertions, 1 deletions
diff --git a/Lib/java/java.swg b/Lib/java/java.swg
index 56516439d..138e47bab 100644
--- a/Lib/java/java.swg
+++ b/Lib/java/java.swg
@@ -1381,7 +1381,7 @@ SWIG_PROXY_CONSTRUCTOR(true, true, SWIGTYPE)
}
}
%typemap(argout) (const char *STRING, size_t LENGTH) {
- if ($input) JCALL3(ReleaseByteArrayElements, jenv, $input, (jbyte *)$1, 0);
+ if ($input) JCALL3(ReleaseByteArrayElements, jenv, $input, (jbyte *)$1, JNI_ABORT);
}
%typemap(directorin, descriptor="[B", noblock=1) (const char *STRING, size_t LENGTH) {
$input = 0;
@@ -1394,6 +1394,9 @@ SWIG_PROXY_CONSTRUCTOR(true, true, SWIGTYPE)
}
%typemap(javadirectorin, descriptor="[B") (const char *STRING, size_t LENGTH) "$jniinput"
%apply (const char *STRING, size_t LENGTH) { (char *STRING, size_t LENGTH) }
+%typemap(argout) (char *STRING, size_t LENGTH) {
+ if ($input) JCALL3(ReleaseByteArrayElements, jenv, $input, (jbyte *)$1, 0);
+}
%typemap(directorargout, noblock=1) (char *STRING, size_t LENGTH)
{ if ($input && $1) JCALL4(GetByteArrayRegion, jenv, $input, 0, (jsize)$2, (jbyte *)$1); }
%apply (char *STRING, size_t LENGTH) { (char *STRING, int LENGTH) }