diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2022-08-24 17:52:20 +0100 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2022-08-31 19:40:13 +0100 |
commit | 0634883089550070c55e53a9f788a6794f3efaf2 (patch) | |
tree | 501460fdbfa817689fd02a3bc15ac16f4b321f42 /Lib/java | |
parent | c10a84c77597695e3bdba37f35d251cb826d1d72 (diff) | |
download | swig-0634883089550070c55e53a9f788a6794f3efaf2.tar.gz |
SWIGTYPE && input typemaps now assume object has been moved - Java
Implementation tweak - better RAII.
SWIGTYPE && null pointer check.
Diffstat (limited to 'Lib/java')
-rw-r--r-- | Lib/java/java.swg | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Lib/java/java.swg b/Lib/java/java.swg index 4e65e7c17..821b5cdf6 100644 --- a/Lib/java/java.swg +++ b/Lib/java/java.swg @@ -695,12 +695,12 @@ Swig::LocalRefGuard $1_refguard(jenv, $input); } SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "$1_type reference is null"); return $null; } %} -%typemap(in) SWIGTYPE && %{ $1 = *($&1_ltype)&$input; +%typemap(in, fragment="<memory>") SWIGTYPE && (std::unique_ptr<$*1_ltype> rvrdeleter) %{ $1 = *($&1_ltype)&$input; if (!$1) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "$1_type reference is null"); return $null; - } %} -%typemap(freearg) SWIGTYPE && %{ delete $1; %} + } + rvrdeleter.reset($1); %} %typemap(out) SWIGTYPE * %{ *($&1_ltype)&$result = $1; %} %typemap(out, fragment="SWIG_PackData", noblock=1) SWIGTYPE (CLASS::*) { |