Merge pull request #403 from LindleyF/master

Zero-initialize swig_override in the director constructor.
This commit is contained in:
Olly Betts 2015-05-07 13:26:04 +12:00
commit 8fc7796643
4 changed files with 157 additions and 2 deletions

View file

@ -435,6 +435,7 @@ public:
Printf(f_directors_h, "\n");
Printf(f_directors_h, "#ifndef SWIG_%s_WRAP_H_\n", module_class_name);
Printf(f_directors_h, "#define SWIG_%s_WRAP_H_\n\n", module_class_name);
Printf(f_directors_h, "#include <bitset>\n");
Printf(f_directors, "\n\n");
Printf(f_directors, "/* ---------------------------------------------------\n");
@ -4483,13 +4484,13 @@ public:
int n_methods = curr_class_dmethod - first_class_dmethod;
if (n_methods) {
/* Emit the swig_overrides() method and the swig_override array */
/* Emit the swig_overrides() method and the swig_override bitset */
Printf(f_directors_h, "public:\n");
Printf(f_directors_h, " bool swig_overrides(int n) {\n");
Printf(f_directors_h, " return (n < %d ? swig_override[n] : false);\n", n_methods);
Printf(f_directors_h, " }\n");
Printf(f_directors_h, "protected:\n");
Printf(f_directors_h, " bool swig_override[%d];\n", n_methods);
Printf(f_directors_h, " std::bitset<%d> swig_override;\n", n_methods);
/* Emit the code to look up the class's methods, initialize the override array */