From 52d0d774ab47fc1cef840734eac92caf01e769f7 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Tue, 15 Jun 2004 20:09:33 +0000 Subject: [PATCH] Fix for directorin char[ANY] typemap git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@5990 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- Lib/java/java.swg | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/Lib/java/java.swg b/Lib/java/java.swg index 68d3b8835..a56dfc4a4 100644 --- a/Lib/java/java.swg +++ b/Lib/java/java.swg @@ -320,6 +320,7 @@ if (!$input) return $null; } } + %typemap(freearg) char * { if ($1) JCALL2(ReleaseStringUTFChars, jenv, $input, $1); } %typemap(out) char * { if($1) $result = JCALL1(NewStringUTF, jenv, $1); } %typemap(javadirectorin) char * "$jniinput" @@ -523,7 +524,13 @@ } } -%typemap(directorin,descriptor="Ljava/lang/String;") char[ANY] "$input = JCALL1(NewStringUTF, jenv, $1_name);" +%typemap(directorin, descriptor="Ljava/lang/String;") char[ANY] { + $input = 0; + if ($1) { + $input = JCALL1(NewStringUTF, jenv, $1); + if (!$input) return $null; + } +} %typemap(argout) char[ANY] "" %typemap(freearg) char[ANY] { if ($1) JCALL2(ReleaseStringUTFChars, jenv, $input, $1); }