summaryrefslogtreecommitdiff
path: root/Lib/java
diff options
context:
space:
mode:
authorWilliam S Fulton <wsf@fultondesigns.co.uk>2022-08-24 17:52:20 +0100
committerWilliam S Fulton <wsf@fultondesigns.co.uk>2022-08-31 19:40:13 +0100
commit0634883089550070c55e53a9f788a6794f3efaf2 (patch)
tree501460fdbfa817689fd02a3bc15ac16f4b321f42 /Lib/java
parentc10a84c77597695e3bdba37f35d251cb826d1d72 (diff)
downloadswig-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.swg6
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::*) {