Merge branch 'adr26-master'
* adr26-master: Cleanup accessing/decref of globals, to avoid code bloat in init function. Fix ISOC build errors. Fix unused variable warning. #1360: Leak of SWIG var link object Conflicts: CHANGES.current
This commit is contained in:
commit
9fe2b05faa
3 changed files with 22 additions and 4 deletions
|
|
@ -3319,7 +3319,17 @@ public:
|
|||
Python dictionary. */
|
||||
|
||||
if (!have_globals) {
|
||||
Printf(f_init, "\t PyDict_SetItemString(md, \"%s\", SWIG_globals());\n", global_name);
|
||||
Printf(f_init, "\t globals = SWIG_globals();\n");
|
||||
Printf(f_init, "\t if (!globals) {\n");
|
||||
Printf(f_init, " PyErr_SetString(PyExc_TypeError, \"Failure to create SWIG globals.\");\n");
|
||||
Printf(f_init, "#if PY_VERSION_HEX >= 0x03000000\n");
|
||||
Printf(f_init, "\t return NULL;\n");
|
||||
Printf(f_init, "#else\n");
|
||||
Printf(f_init, "\t return;\n");
|
||||
Printf(f_init, "#endif\n");
|
||||
Printf(f_init, "\t }\n");
|
||||
Printf(f_init, "\t PyDict_SetItemString(md, \"%s\", globals);\n", global_name);
|
||||
Printf(f_init, "\t Py_DECREF(globals);\n");
|
||||
if (builtin)
|
||||
Printf(f_init, "\t SwigPyBuiltin_AddPublicSymbol(public_interface, \"%s\");\n", global_name);
|
||||
have_globals = 1;
|
||||
|
|
@ -3407,9 +3417,9 @@ public:
|
|||
Wrapper_print(getf, f_wrappers);
|
||||
|
||||
/* Now add this to the variable linking mechanism */
|
||||
Printf(f_init, "\t SWIG_addvarlink(SWIG_globals(), \"%s\", %s, %s);\n", iname, vargetname, varsetname);
|
||||
Printf(f_init, "\t SWIG_addvarlink(globals, \"%s\", %s, %s);\n", iname, vargetname, varsetname);
|
||||
if (builtin && shadow && !assignable && !in_class) {
|
||||
Printf(f_init, "\t PyDict_SetItemString(md, \"%s\", PyObject_GetAttrString(SWIG_globals(), \"%s\"));\n", iname, iname);
|
||||
Printf(f_init, "\t PyDict_SetItemString(md, \"%s\", PyObject_GetAttrString(globals, \"%s\"));\n", iname, iname);
|
||||
Printf(f_init, "\t SwigPyBuiltin_AddPublicSymbol(public_interface, \"%s\");\n", iname);
|
||||
}
|
||||
Delete(vargetname);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue