diff options
author | William S Fulton <wsf@fultondesigns.co.uk> | 2009-03-31 12:23:47 +0000 |
---|---|---|
committer | William S Fulton <wsf@fultondesigns.co.uk> | 2009-03-31 12:23:47 +0000 |
commit | be73d28ad76a7e703334e71c860a49cc1b1382f6 (patch) | |
tree | a2494310114936f261e149db5906172d9655d08b /Lib/java/boost_shared_ptr.i | |
parent | 084a168a0ff306b32a3277ba4418f1a29c7215e8 (diff) | |
download | swig-be73d28ad76a7e703334e71c860a49cc1b1382f6.tar.gz |
don't unnecessarily set swigCPtr to zero again if Dispose/delete called multiple times
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk@11179 626c5289-ae23-0410-ae9c-e8d60b6d4f22
Diffstat (limited to 'Lib/java/boost_shared_ptr.i')
-rw-r--r-- | Lib/java/boost_shared_ptr.i | 22 |
1 files changed, 13 insertions, 9 deletions
diff --git a/Lib/java/boost_shared_ptr.i b/Lib/java/boost_shared_ptr.i index 1f555bf85..75762f84f 100644 --- a/Lib/java/boost_shared_ptr.i +++ b/Lib/java/boost_shared_ptr.i @@ -33,7 +33,7 @@ // plain reference %typemap(in) CONST TYPE & %{ $1 = ($1_ltype)((*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input) ? (*(SWIG_SHARED_PTR_QNAMESPACE::shared_ptr< CONST TYPE > **)&$input)->get() : 0); - if(!$1) { + if (!$1) { SWIG_JavaThrowException(jenv, SWIG_JavaNullPointerException, "$1_type reference is null"); return $null; } %} @@ -166,19 +166,23 @@ %} %typemap(javadestruct, methodname="delete", methodmodifiers="public synchronized") TYPE { - if(swigCPtr != 0 && swigCMemOwnBase) { - swigCMemOwnBase = false; - $jnicall; + if (swigCPtr != 0) { + if (swigCMemOwnBase) { + swigCMemOwnBase = false; + $jnicall; + } + swigCPtr = 0; } - swigCPtr = 0; } %typemap(javadestruct_derived, methodname="delete", methodmodifiers="public synchronized") TYPE { - if(swigCPtr != 0 && swigCMemOwnDerived) { - swigCMemOwnDerived = false; - $jnicall; + if (swigCPtr != 0) { + if (swigCMemOwnDerived) { + swigCMemOwnDerived = false; + $jnicall; + } + swigCPtr = 0; } - swigCPtr = 0; super.delete(); } |