mirror of https://github.com/swig/swig
Add missing typecheck typemaps for std::auto_ptr and std::unique_ptr
To fix overloading when using these types.
This commit is contained in:
parent
f0af17b324
commit
e97181ebc0
|
@ -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.
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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");
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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")
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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"))
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -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"]
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
return ret;
|
||||
}
|
||||
|
||||
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *") std::auto_ptr< TYPE > ""
|
||||
|
||||
%template() std::auto_ptr< TYPE >;
|
||||
%enddef
|
||||
|
||||
|
|
|
@ -28,6 +28,8 @@
|
|||
return ret;
|
||||
}
|
||||
|
||||
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *") std::unique_ptr< TYPE > ""
|
||||
|
||||
%template() std::unique_ptr< TYPE >;
|
||||
%enddef
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
return ret;
|
||||
}
|
||||
|
||||
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *") std::auto_ptr< TYPE > ""
|
||||
|
||||
%template() std::auto_ptr< TYPE >;
|
||||
%enddef
|
||||
|
||||
|
|
|
@ -32,6 +32,8 @@
|
|||
return ret;
|
||||
}
|
||||
|
||||
%typemap(typecheck, precedence=SWIG_TYPECHECK_POINTER, equivalent="TYPE *") std::unique_ptr< TYPE > ""
|
||||
|
||||
%template() std::unique_ptr< TYPE >;
|
||||
%enddef
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue