Add missing typecheck typemaps for std::auto_ptr and std::unique_ptr

To fix overloading when using these types.
This commit is contained in:
William S Fulton 2022-09-17 10:23:51 +01:00
parent f0af17b324
commit e97181ebc0
59 changed files with 442 additions and 2 deletions

View File

@ -7,6 +7,10 @@ the issue number to the end of the URL: https://github.com/swig/swig/issues/
Version 4.1.0 (in progress)
===========================
2022-09-17: wsfulton
Add missing typecheck typemaps for std::auto_ptr and std::unique_ptr to
fix overloading when using these types.
2022-09-17: wsfulton
[Guile] Add error checking to SWIGTYPE and SWIGTYPE & in typemaps to prevent
seg faults when passing #nil to these parameter types.

View File

@ -2,6 +2,8 @@
#if !(defined(SWIGGO) || defined(SWIGOCAML) || defined(SWIGR) || defined(SWIGSCILAB))
%warnfilter(509, 516) overloadTest(Klass);
%include "std_string.i"
%include "std_unique_ptr.i"
@ -88,6 +90,18 @@ std::unique_ptr<Klass> makeNullUniquePtr() {
return std::unique_ptr<Klass>();
}
int overloadTest() {
return 0;
}
int overloadTest(std::unique_ptr<Klass> kover) {
return 1;
}
int overloadTest(Klass k) {
return 2;
}
%}
#endif

View File

@ -91,6 +91,15 @@ public class cpp11_std_unique_ptr_runme {
cpp11_std_unique_ptr.takeKlassUniquePtr(cpp11_std_unique_ptr.make_null());
checkCount(0);
// overloaded parameters
if (cpp11_std_unique_ptr.overloadTest() != 0)
throw new ApplicationException("overloadTest failed");
if (cpp11_std_unique_ptr.overloadTest(null) != 1)
throw new ApplicationException("overloadTest failed");
if (cpp11_std_unique_ptr.overloadTest(new Klass("over")) != 1)
throw new ApplicationException("overloadTest failed");
checkCount(0);
// unique_ptr as output
Klass k1 = cpp11_std_unique_ptr.makeKlassUniquePtr("first");

View File

@ -91,6 +91,15 @@ public class li_std_auto_ptr_runme {
li_std_auto_ptr.takeKlassAutoPtr(li_std_auto_ptr.make_null());
checkCount(0);
// overloaded parameters
if (li_std_auto_ptr.overloadTest() != 0)
throw new ApplicationException("overloadTest failed");
if (li_std_auto_ptr.overloadTest(null) != 1)
throw new ApplicationException("overloadTest failed");
if (li_std_auto_ptr.overloadTest(new Klass("over")) != 1)
throw new ApplicationException("overloadTest failed");
checkCount(0);
// auto_ptr as output
Klass k1 = li_std_auto_ptr.makeKlassAutoPtr("first");

View File

@ -91,6 +91,15 @@ void main() {
takeKlassUniquePtr(make_null());
checkCount(0);
// overloaded parameters
if (overloadTest() != 0)
throw new Exception("overloadTest failed");
if (overloadTest(null) != 1)
throw new Exception("overloadTest failed");
if (overloadTest(new Klass("over")) != 1)
throw new Exception("overloadTest failed");
checkCount(0);
// unique_ptr as output
Klass k1 = makeKlassUniquePtr("first");

View File

@ -91,6 +91,15 @@ void main() {
takeKlassUniquePtr(make_null());
checkCount(0);
// overloaded parameters
if (overloadTest() != 0)
throw new Exception("overloadTest failed");
if (overloadTest(null) != 1)
throw new Exception("overloadTest failed");
if (overloadTest(new Klass("over")) != 1)
throw new Exception("overloadTest failed");
checkCount(0);
// unique_ptr as output
Klass k1 = makeKlassUniquePtr("first");

View File

@ -91,6 +91,15 @@ void main() {
takeKlassAutoPtr(make_null());
checkCount(0);
// overloaded parameters
if (overloadTest() != 0)
throw new Exception("overloadTest failed");
if (overloadTest(null) != 1)
throw new Exception("overloadTest failed");
if (overloadTest(new Klass("over")) != 1)
throw new Exception("overloadTest failed");
checkCount(0);
// auto_ptr as output
Klass k1 = makeKlassAutoPtr("first");

View File

@ -91,6 +91,15 @@ void main() {
takeKlassAutoPtr(make_null());
checkCount(0);
// overloaded parameters
if (overloadTest() != 0)
throw new Exception("overloadTest failed");
if (overloadTest(null) != 1)
throw new Exception("overloadTest failed");
if (overloadTest(new Klass("over")) != 1)
throw new Exception("overloadTest failed");
checkCount(0);
// auto_ptr as output
Klass k1 = makeKlassAutoPtr("first");

View File

@ -111,6 +111,15 @@ public class cpp11_std_unique_ptr_runme {
cpp11_std_unique_ptr.takeKlassUniquePtr(cpp11_std_unique_ptr.make_null());
checkCount(0);
// overloaded parameters
if (cpp11_std_unique_ptr.overloadTest() != 0)
throw new RuntimeException("overloadTest failed");
if (cpp11_std_unique_ptr.overloadTest(null) != 1)
throw new RuntimeException("overloadTest failed");
if (cpp11_std_unique_ptr.overloadTest(new Klass("over")) != 1)
throw new RuntimeException("overloadTest failed");
checkCount(0);
// unique_ptr as output
Klass k1 = cpp11_std_unique_ptr.makeKlassUniquePtr("first");

View File

@ -111,6 +111,15 @@ public class li_std_auto_ptr_runme {
li_std_auto_ptr.takeKlassAutoPtr(li_std_auto_ptr.make_null());
checkCount(0);
// overloaded parameters
if (li_std_auto_ptr.overloadTest() != 0)
throw new RuntimeException("overloadTest failed");
if (li_std_auto_ptr.overloadTest(null) != 1)
throw new RuntimeException("overloadTest failed");
if (li_std_auto_ptr.overloadTest(new Klass("over")) != 1)
throw new RuntimeException("overloadTest failed");
checkCount(0);
// auto_ptr as output
Klass k1 = li_std_auto_ptr.makeKlassAutoPtr("first");

View File

@ -94,6 +94,15 @@ cpp11_std_unique_ptr.takeKlassUniquePtr(null);
cpp11_std_unique_ptr.takeKlassUniquePtr(cpp11_std_unique_ptr.make_null());
checkCount(0);
// overloaded parameters
if (cpp11_std_unique_ptr.overloadTest() != 0)
throw new RuntimeException("overloadTest failed");
if (cpp11_std_unique_ptr.overloadTest(null) != 1)
throw new RuntimeException("overloadTest failed");
if (cpp11_std_unique_ptr.overloadTest(new cpp11_std_unique_ptr.Klass("over")) != 1)
throw new RuntimeException("overloadTest failed");
checkCount(0);
// unique_ptr as output
k1 = cpp11_std_unique_ptr.makeKlassUniquePtr("first");

View File

@ -94,6 +94,15 @@ li_std_auto_ptr.takeKlassAutoPtr(null);
li_std_auto_ptr.takeKlassAutoPtr(li_std_auto_ptr.make_null());
checkCount(0);
// overloaded parameters
if (li_std_auto_ptr.overloadTest() != 0)
throw new RuntimeException("overloadTest failed");
if (li_std_auto_ptr.overloadTest(null) != 1)
throw new RuntimeException("overloadTest failed");
if (li_std_auto_ptr.overloadTest(new li_std_auto_ptr.Klass("over")) != 1)
throw new RuntimeException("overloadTest failed");
checkCount(0);
// auto_ptr as output
k1 = li_std_auto_ptr.makeKlassAutoPtr("first");

View File

@ -14,6 +14,8 @@
#if !(defined(SWIGGO) || defined(SWIGOCAML) || defined(SWIGR) || defined(SWIGSCILAB))
%warnfilter(509, 516) overloadTest(Klass);
%include "std_string.i"
//#include <iostream>
%include "std_auto_ptr.i"
@ -136,6 +138,18 @@ std::auto_ptr<Klass> makeNullAutoPtr() {
return std::auto_ptr<Klass>();
}
int overloadTest() {
return 0;
}
int overloadTest(std::auto_ptr<Klass> kover) {
return 1;
}
int overloadTest(Klass k) {
return 2;
}
%}
#endif

View File

@ -81,6 +81,18 @@ cpp11_std_unique_ptr.takeKlassUniquePtr(nil);
cpp11_std_unique_ptr.takeKlassUniquePtr(cpp11_std_unique_ptr.make_null());
checkCount(0);
-- overloaded parameters
if not (cpp11_std_unique_ptr.overloadTest() == 0) then
error("overloadTest failed")
end
if not (cpp11_std_unique_ptr.overloadTest(nil) == 1) then
error("overloadTest failed")
end
if not (cpp11_std_unique_ptr.overloadTest(cpp11_std_unique_ptr.Klass("over")) == 1) then
error("overloadTest failed")
end
checkCount(0)
-- unique_ptr as output
k1 = cpp11_std_unique_ptr.makeKlassUniquePtr("first")

View File

@ -81,6 +81,18 @@ li_std_auto_ptr.takeKlassAutoPtr(nil);
li_std_auto_ptr.takeKlassAutoPtr(li_std_auto_ptr.make_null());
checkCount(0);
-- overloaded parameters
if not (li_std_auto_ptr.overloadTest() == 0) then
error("overloadTest failed")
end
if not (li_std_auto_ptr.overloadTest(nil) == 1) then
error("overloadTest failed")
end
if not (li_std_auto_ptr.overloadTest(li_std_auto_ptr.Klass("over")) == 1) then
error("overloadTest failed")
end
checkCount(0)
-- auto_ptr as output
k1 = li_std_auto_ptr.makeKlassAutoPtr("first")

View File

@ -79,6 +79,15 @@
(takeKlassUniquePtr (make-null))
(checkCount 0)
; overloaded parameters
(unless (= (overloadTest) 0)
(error "overloadTest failed"))
(unless (= (overloadTest null) 1)
(error "overloadTest failed"))
(unless (= (overloadTest (new-Klass "over")) 1)
(error "overloadTest failed"))
(checkCount 0)
; unique_ptr as output
(define k1 (makeKlassUniquePtr "first"))

View File

@ -79,6 +79,15 @@
(takeKlassAutoPtr (make-null))
(checkCount 0)
; overloaded parameters
(unless (= (overloadTest) 0)
(error "overloadTest failed"))
(unless (= (overloadTest null) 1)
(error "overloadTest failed"))
(unless (= (overloadTest (new-Klass "over")) 1)
(error "overloadTest failed"))
(checkCount 0)
; auto_ptr as output
(define k1 (makeKlassAutoPtr "first"))

View File

@ -100,6 +100,18 @@ takeKlassUniquePtr(null);
takeKlassUniquePtr(null_ptr);
checkCount(0);
# overloaded parameters
if (overloadTest() != 0)
error("overloadTest failed");
endif
if (overloadTest(null) != 1)
error("overloadTest failed");
endif
if (overloadTest(Klass("over")) != 1)
error("overloadTest failed");
endif
checkCount(0);
# unique_ptr as output
k1 = makeKlassUniquePtr("first");

View File

@ -100,6 +100,18 @@ takeKlassAutoPtr(null);
takeKlassAutoPtr(null_ptr);
checkCount(0);
# overloaded parameters
if (overloadTest() != 0)
error("overloadTest failed");
endif
if (overloadTest(null) != 1)
error("overloadTest failed");
endif
if (overloadTest(Klass("over")) != 1)
error("overloadTest failed");
endif
checkCount(0);
# auto_ptr as output
k1 = makeKlassAutoPtr("first");

View File

@ -1,6 +1,6 @@
use strict;
use warnings;
use Test::More tests => 30;
use Test::More tests => 34;
BEGIN { use_ok('cpp11_std_unique_ptr') }
require_ok('cpp11_std_unique_ptr');
@ -77,6 +77,12 @@ cpp11_std_unique_ptr::takeKlassUniquePtr(undef);
cpp11_std_unique_ptr::takeKlassUniquePtr(cpp11_std_unique_ptr::make_null());
checkCount(0);
# overloaded parameters
is(cpp11_std_unique_ptr::overloadTest(), 0, "overloadTest failed");
is(cpp11_std_unique_ptr::overloadTest(undef), 1, "overloadTest failed");
is(cpp11_std_unique_ptr::overloadTest(new cpp11_std_unique_ptr::Klass("over")), 1, "overloadTest failed");
checkCount(0);
# unique_ptr as output
my $k1 = cpp11_std_unique_ptr::makeKlassUniquePtr("first");

View File

@ -1,6 +1,6 @@
use strict;
use warnings;
use Test::More tests => 30;
use Test::More tests => 34;
BEGIN { use_ok('li_std_auto_ptr') }
require_ok('li_std_auto_ptr');
@ -77,6 +77,12 @@ li_std_auto_ptr::takeKlassAutoPtr(undef);
li_std_auto_ptr::takeKlassAutoPtr(li_std_auto_ptr::make_null());
checkCount(0);
# overloaded parameters
is(li_std_auto_ptr::overloadTest(), 0, "overloadTest failed");
is(li_std_auto_ptr::overloadTest(undef), 1, "overloadTest failed");
is(li_std_auto_ptr::overloadTest(new li_std_auto_ptr::Klass("over")), 1, "overloadTest failed");
checkCount(0);
# auto_ptr as output
my $k1 = li_std_auto_ptr::makeKlassAutoPtr("first");

View File

@ -83,6 +83,12 @@ takeKlassUniquePtr(NULL);
takeKlassUniquePtr(make_null());
checkCount(0);
# overloaded parameters
check::equal(overloadTest(), 0, "overloadTest failed");
check::equal(overloadTest(NULL), 1, "overloadTest failed");
check::equal(overloadTest(new Klass("over")), 1, "overloadTest failed");
checkCount(0);
# unique_ptr as output
$k1 = makeKlassUniquePtr("first");

View File

@ -83,6 +83,12 @@ takeKlassAutoPtr(NULL);
takeKlassAutoPtr(make_null());
checkCount(0);
# overloaded parameters
check::equal(overloadTest(), 0, "overloadTest failed");
check::equal(overloadTest(NULL), 1, "overloadTest failed");
check::equal(overloadTest(new Klass("over")), 1, "overloadTest failed");
checkCount(0);
# auto_ptr as output
$k1 = makeKlassAutoPtr("first");

View File

@ -81,6 +81,15 @@ takeKlassUniquePtr(None)
takeKlassUniquePtr(make_null())
checkCount(0)
# overloaded parameters
if overloadTest() != 0:
raise RuntimeError("overloadTest failed")
if overloadTest(None) != 1:
raise RuntimeError("overloadTest failed")
if overloadTest(Klass("over")) != 1:
raise RuntimeError("overloadTest failed")
checkCount(0);
# unique_ptr as output
k1 = makeKlassUniquePtr("first")

View File

@ -81,6 +81,15 @@ takeKlassAutoPtr(None)
takeKlassAutoPtr(make_null())
checkCount(0)
# overloaded parameters
if overloadTest() != 0:
raise RuntimeError("overloadTest failed")
if overloadTest(None) != 1:
raise RuntimeError("overloadTest failed")
if overloadTest(Klass("over")) != 1:
raise RuntimeError("overloadTest failed")
checkCount(0);
# auto_ptr as output
k1 = makeKlassAutoPtr("first")

View File

@ -120,6 +120,18 @@ Cpp11_std_unique_ptr::takeKlassUniquePtr(nil)
Cpp11_std_unique_ptr::takeKlassUniquePtr(Cpp11_std_unique_ptr::make_null())
checkCount(0)
# overloaded parameters
if (Cpp11_std_unique_ptr::overloadTest() != 0)
raise RuntimeError, "overloadTest failed"
end
if (Cpp11_std_unique_ptr::overloadTest(nil) != 1)
raise RuntimeError, "overloadTest failed"
end
if (Cpp11_std_unique_ptr::overloadTest(Cpp11_std_unique_ptr::Klass.new("over")) != 1)
raise RuntimeError, "overloadTest failed"
end
checkCount(0);
# unique_ptr as output
k1 = Cpp11_std_unique_ptr::makeKlassUniquePtr("first")

View File

@ -120,6 +120,18 @@ Li_std_auto_ptr::takeKlassAutoPtr(nil)
Li_std_auto_ptr::takeKlassAutoPtr(Li_std_auto_ptr::make_null())
checkCount(0)
# overloaded parameters
if (Li_std_auto_ptr::overloadTest() != 0)
raise RuntimeError, "overloadTest failed"
end
if (Li_std_auto_ptr::overloadTest(nil) != 1)
raise RuntimeError, "overloadTest failed"
end
if (Li_std_auto_ptr::overloadTest(Li_std_auto_ptr::Klass.new("over")) != 1)
raise RuntimeError, "overloadTest failed"
end
checkCount(0);
# auto_ptr as output
k1 = Li_std_auto_ptr::makeKlassAutoPtr("first")

View File

@ -65,6 +65,15 @@
(takeKlassUniquePtr (make-null))
(checkCount 0)
; overloaded parameters
(unless (= (overloadTest) 0)
(error "overloadTest failed"))
(unless (= (overloadTest nullnil) 1)
(error "overloadTest failed"))
(unless (= (overloadTest (new-Klass "over")) 1)
(error "overloadTest failed"))
(checkCount 0)
; unique_ptr as output
(define k1 (makeKlassUniquePtr "first"))

View File

@ -65,6 +65,15 @@
(takeKlassAutoPtr (make-null))
(checkCount 0)
; overloaded parameters
(unless (= (overloadTest) 0)
(error "overloadTest failed"))
(unless (= (overloadTest nullnil) 1)
(error "overloadTest failed"))
(unless (= (overloadTest (new-Klass "over")) 1)
(error "overloadTest failed"))
(checkCount 0)
; auto_ptr as output
(define k1 (makeKlassAutoPtr "first"))

View File

@ -130,6 +130,18 @@ takeKlassUniquePtr "NULL"
takeKlassUniquePtr [make_null]
checkCount 0
# overloaded parameters
if {[overloadTest] != 0} {
error "overloadTest failed"
}
if {[overloadTest "NULL"] != 1} {
error "overloadTest failed"
}
if {[overloadTest [Klass k "over"]] != 1} {
error "overloadTest failed"
}
checkCount 0
# unique_ptr as output
set k1 [makeKlassUniquePtr "first"]

View File

@ -101,6 +101,18 @@ takeKlassAutoPtr "NULL"
takeKlassAutoPtr [make_null]
checkCount 0
# overloaded parameters
if {[overloadTest] != 0} {
error "overloadTest failed"
}
if {[overloadTest "NULL"] != 1} {
error "overloadTest failed"
}
if {[overloadTest [Klass k "over"]] != 1} {
error "overloadTest failed"
}
checkCount 0
# auto_ptr as output
set k1 [makeKlassAutoPtr "first"]

View File

@ -28,6 +28,8 @@
return ret;
}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *") std::auto_ptr< TYPE > ""
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -28,6 +28,8 @@
return ret;
}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *") std::unique_ptr< TYPE > ""
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -32,6 +32,8 @@
return ret;
}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *") std::auto_ptr< TYPE > ""
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -32,6 +32,8 @@
return ret;
}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *") std::unique_ptr< TYPE > ""
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::auto_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::unique_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -31,6 +31,8 @@
return (cPtr == 0) ? null : new $typemap(jstype, TYPE)(cPtr, true);
}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *") std::auto_ptr< TYPE > ""
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -31,6 +31,8 @@
return (cPtr == 0) ? null : new $typemap(jstype, TYPE)(cPtr, true);
}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *") std::unique_ptr< TYPE > ""
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::auto_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::unique_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::auto_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::unique_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
SWIG_NewPointerObj(L, $1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN); SWIG_arg++;
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::auto_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr(L, $input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
SWIG_NewPointerObj(L, $1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN); SWIG_arg++;
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::unique_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr(L, $input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::auto_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::unique_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::auto_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::unique_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::auto_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::unique_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -27,6 +27,12 @@
SWIG_SetPointerZval($result, (void *)$1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN);
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::auto_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr(&$input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -27,6 +27,12 @@
SWIG_SetPointerZval($result, (void *)$1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN);
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::unique_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr(&$input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::auto_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::unique_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::auto_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
%set_output(SWIG_NewPointerObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN | %newpointer_flags));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::unique_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::unique_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
Tcl_SetObjResult(interp, SWIG_NewInstanceObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::auto_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::auto_ptr< TYPE >;
%enddef

View File

@ -25,6 +25,12 @@
Tcl_SetObjResult(interp, SWIG_NewInstanceObj($1.release(), $descriptor(TYPE *), SWIG_POINTER_OWN));
%}
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *", noblock=1) std::unique_ptr< TYPE > {
void *vptr = 0;
int res = SWIG_ConvertPtr($input, &vptr, $descriptor(TYPE *), 0);
$1 = SWIG_CheckState(res);
}
%template() std::unique_ptr< TYPE >;
%enddef