mirror of https://github.com/swig/swig
fix for directors, now the test-suite runs again using -directors
git-svn-id: https://swig.svn.sourceforge.net/svnroot/swig/trunk/SWIG@8856 626c5289-ae23-0410-ae9c-e8d60b6d4f22
This commit is contained in:
parent
60fca08fd8
commit
3d6ad6e78d
|
@ -9,7 +9,13 @@ include Abstract_signature
|
|||
|
||||
exceptionRaised = false
|
||||
begin
|
||||
Abstract_foo.new
|
||||
foo = Abstract_foo.new
|
||||
begin
|
||||
foo.meth(1)
|
||||
rescue RuntimeError
|
||||
# here we are using directors
|
||||
exceptionRaised = true
|
||||
end
|
||||
rescue NameError
|
||||
exceptionRaised = true
|
||||
rescue TypeError
|
||||
|
@ -27,7 +33,13 @@ end
|
|||
|
||||
exceptionRaised = false
|
||||
begin
|
||||
Abstract_bar.new
|
||||
bar = Abstract_bar.new
|
||||
begin
|
||||
bar.meth(1)
|
||||
rescue RuntimeError
|
||||
# here we are using directors
|
||||
exceptionRaised = true
|
||||
end
|
||||
rescue NameError
|
||||
exceptionRaised = true
|
||||
rescue TypeError
|
||||
|
|
|
@ -25,17 +25,17 @@ public:
|
|||
|
||||
// Testing ignore
|
||||
|
||||
%ignore std::vector<Flow>::vector(size_type);
|
||||
%ignore std::tvector<Flow>::tvector(size_type);
|
||||
|
||||
%inline %{
|
||||
|
||||
namespace std {
|
||||
|
||||
template<class T> class vector {
|
||||
template<class T> class tvector {
|
||||
public:
|
||||
typedef size_t size_type;
|
||||
vector() {}
|
||||
vector(size_type n) { T t = T(); }
|
||||
tvector() {}
|
||||
tvector(size_type n) { T t = T(); }
|
||||
};
|
||||
}
|
||||
|
||||
|
@ -46,4 +46,4 @@ public:
|
|||
};
|
||||
%}
|
||||
|
||||
%template(VectFlow) std::vector<Flow>;
|
||||
%template(VectFlow) std::tvector<Flow>;
|
||||
|
|
|
@ -50,3 +50,8 @@ type SWIGMACRO_##name(lparams) {
|
|||
|
||||
*/
|
||||
|
||||
%{
|
||||
#ifdef max
|
||||
#undef max
|
||||
#endif
|
||||
%}
|
||||
|
|
|
@ -1997,7 +1997,7 @@ module_directive: MODULE options idstring {
|
|||
if ($2) {
|
||||
Setattr($$,"options",$2);
|
||||
if (Getattr($2,"directors")) {
|
||||
/* Wrapper_director_mode_set(1);*/
|
||||
Wrapper_director_mode_set(1);
|
||||
}
|
||||
if (Getattr($2,"templatereduce")) {
|
||||
template_reduce = 1;
|
||||
|
|
|
@ -1657,7 +1657,10 @@ String *vtable_method_id(Node *n)
|
|||
String *name = Getattr(n, "name");
|
||||
String *decl = Getattr(n, "decl");
|
||||
String *local_decl = SwigType_typedef_resolve_all(decl);
|
||||
Node *method_id = NewStringf("%s|%s", name, local_decl);
|
||||
String *tmp = SwigType_pop_function(local_decl);
|
||||
Delete(local_decl);
|
||||
local_decl = tmp;
|
||||
Node *method_id = NewStringf("%s|%s", name, local_decl);
|
||||
Delete(local_decl);
|
||||
return method_id;
|
||||
}
|
||||
|
|
|
@ -1175,7 +1175,8 @@ public:
|
|||
emit_action(n,f);
|
||||
|
||||
if (director_method) {
|
||||
Printf(f->code, "} catch (Swig::DirectorException&) {\n");
|
||||
Printf(f->code, "} catch (Swig::DirectorException& e) {\n");
|
||||
Printf(f->code, " rb_exc_raise(e.getError());\n");
|
||||
Printf(f->code, " SWIG_fail;\n");
|
||||
Printf(f->code, "}\n");
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue