[Go] Fix bug with ignored destructor--generated code did not compile.
This commit is contained in:
parent
1e19e4bd45
commit
5bca063536
2 changed files with 41 additions and 25 deletions
|
|
@ -10,6 +10,7 @@
|
||||||
%ignore OverloadedProtectedMethod(int n, int xoffset = 0, int yoffset = 0);
|
%ignore OverloadedProtectedMethod(int n, int xoffset = 0, int yoffset = 0);
|
||||||
%ignore DIgnoreConstructor(bool b);
|
%ignore DIgnoreConstructor(bool b);
|
||||||
%ignore DIgnoreOnlyConstructor(bool b);
|
%ignore DIgnoreOnlyConstructor(bool b);
|
||||||
|
%ignore DIgnoreDestructor::~DIgnoreDestructor;
|
||||||
%ignore Pointers;
|
%ignore Pointers;
|
||||||
%ignore References;
|
%ignore References;
|
||||||
%ignore PublicMethod1;
|
%ignore PublicMethod1;
|
||||||
|
|
@ -101,6 +102,13 @@ class DIgnoreOnlyConstructor
|
||||||
DIgnoreOnlyConstructor(bool b) {}
|
DIgnoreOnlyConstructor(bool b) {}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
class DIgnoreDestructor
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DIgnoreDestructor() {}
|
||||||
|
virtual ~DIgnoreDestructor() {}
|
||||||
|
};
|
||||||
|
|
||||||
%{
|
%{
|
||||||
class DIgnoreConstructor
|
class DIgnoreConstructor
|
||||||
{
|
{
|
||||||
|
|
@ -118,5 +126,12 @@ class DIgnoreOnlyConstructor
|
||||||
private: // Hide constructor
|
private: // Hide constructor
|
||||||
DIgnoreOnlyConstructor(bool b) {}
|
DIgnoreOnlyConstructor(bool b) {}
|
||||||
};
|
};
|
||||||
%}
|
|
||||||
|
|
||||||
|
class DIgnoreDestructor
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
DIgnoreDestructor() {}
|
||||||
|
virtual ~DIgnoreDestructor() {}
|
||||||
|
};
|
||||||
|
|
||||||
|
%}
|
||||||
|
|
|
||||||
|
|
@ -3891,36 +3891,37 @@ private:
|
||||||
String *director_struct_name = NewString("_swig_Director");
|
String *director_struct_name = NewString("_swig_Director");
|
||||||
Append(director_struct_name, cn);
|
Append(director_struct_name, cn);
|
||||||
|
|
||||||
Printv(f_c_directors_h, " virtual ~SwigDirector_", class_name, "()", NULL);
|
|
||||||
|
|
||||||
String *throws = buildThrow(n);
|
|
||||||
if (throws) {
|
|
||||||
Printv(f_c_directors_h, " ", throws, NULL);
|
|
||||||
}
|
|
||||||
|
|
||||||
Printv(f_c_directors_h, ";\n", NULL);
|
|
||||||
|
|
||||||
String *director_sig = NewString("");
|
|
||||||
|
|
||||||
Printv(director_sig, "SwigDirector_", class_name, "::~SwigDirector_", class_name, "()", NULL);
|
|
||||||
|
|
||||||
if (throws) {
|
|
||||||
Printv(director_sig, " ", throws, NULL);
|
|
||||||
Delete(throws);
|
|
||||||
}
|
|
||||||
|
|
||||||
Printv(director_sig, "\n", NULL);
|
|
||||||
Printv(director_sig, "{\n", NULL);
|
|
||||||
|
|
||||||
if (!is_ignored) {
|
if (!is_ignored) {
|
||||||
|
Printv(f_c_directors_h, " virtual ~SwigDirector_", class_name, "()", NULL);
|
||||||
|
|
||||||
|
String *throws = buildThrow(n);
|
||||||
|
if (throws) {
|
||||||
|
Printv(f_c_directors_h, " ", throws, NULL);
|
||||||
|
}
|
||||||
|
|
||||||
|
Printv(f_c_directors_h, ";\n", NULL);
|
||||||
|
|
||||||
|
String *director_sig = NewString("");
|
||||||
|
|
||||||
|
Printv(director_sig, "SwigDirector_", class_name, "::~SwigDirector_", class_name, "()", NULL);
|
||||||
|
|
||||||
|
if (throws) {
|
||||||
|
Printv(director_sig, " ", throws, NULL);
|
||||||
|
Delete(throws);
|
||||||
|
}
|
||||||
|
|
||||||
|
Printv(director_sig, "\n", NULL);
|
||||||
|
Printv(director_sig, "{\n", NULL);
|
||||||
|
|
||||||
makeDirectorDestructorWrapper(go_name, director_struct_name, director_sig);
|
makeDirectorDestructorWrapper(go_name, director_struct_name, director_sig);
|
||||||
|
|
||||||
Printv(f_c_directors, " delete swig_mem;\n", NULL);
|
Printv(f_c_directors, " delete swig_mem;\n", NULL);
|
||||||
|
|
||||||
|
Printv(f_c_directors, "}\n\n", NULL);
|
||||||
|
|
||||||
|
Delete(director_sig);
|
||||||
}
|
}
|
||||||
|
|
||||||
Printv(f_c_directors, "}\n\n", NULL);
|
|
||||||
|
|
||||||
Delete(director_sig);
|
|
||||||
Delete(go_name);
|
Delete(go_name);
|
||||||
Delete(cn);
|
Delete(cn);
|
||||||
Delete(director_struct_name);
|
Delete(director_struct_name);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue