From bdc28f90ca908d9334d5f2733ffe686cfeeee1b9 Mon Sep 17 00:00:00 2001 From: William S Fulton Date: Sat, 13 May 2006 23:16:20 +0000 Subject: [PATCH] better director support for reference types git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@9097 626c5289-ae23-0410-ae9c-e8d60b6d4f22 --- SWIG/Lib/java/java.swg | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/SWIG/Lib/java/java.swg b/SWIG/Lib/java/java.swg index d7b59ccd9..c8161d225 100644 --- a/SWIG/Lib/java/java.swg +++ b/SWIG/Lib/java/java.swg @@ -598,11 +598,17 @@ %typemap(directorin,descriptor="L$packagepath/$javaclassname;") SWIGTYPE *, SWIGTYPE (CLASS::*) %{ *(($&1_ltype)&$input) = ($1_ltype) $1; %} +%typemap(directorout) SWIGTYPE & +%{ if (!$input) { + SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "Unexpected null return for type $1_type"); + return $null; + } + $1 = ($1_ltype)$input; %} %typemap(directorin,descriptor="L$packagepath/$javaclassname;") SWIGTYPE & %{ *($&1_ltype)&$input = ($1_ltype) &$1; %} -%typemap(javadirectorin) SWIGTYPE *, SWIGTYPE (CLASS::*), SWIGTYPE &, const SWIGTYPE & "new $javaclassname($jniinput, false)" -%typemap(javadirectorout) SWIGTYPE *, SWIGTYPE (CLASS::*), SWIGTYPE &, const SWIGTYPE & "$javaclassname.getCPtr($javacall)" +%typemap(javadirectorin) SWIGTYPE *, SWIGTYPE (CLASS::*), SWIGTYPE & "new $javaclassname($jniinput, false)" +%typemap(javadirectorout) SWIGTYPE *, SWIGTYPE (CLASS::*), SWIGTYPE & "$javaclassname.getCPtr($javacall)" /* Default array handling */ %typemap(in) SWIGTYPE [] %{ $1 = *($&1_ltype)&$input; %}