From: Robin Dunn Date: Mon, 13 Sep 2004 18:18:38 +0000 (+0000) Subject: workaround bug in SWIG's t_output_helper X-Git-Url: https://git.saurik.com/wxWidgets.git/commitdiff_plain/807399558def91e8acaadcf6832371cc8476c4f0 workaround bug in SWIG's t_output_helper git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@29124 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- diff --git a/wxPython/src/my_fragments.i b/wxPython/src/my_fragments.i index 1b1f06bedb..1406d4ee50 100644 --- a/wxPython/src/my_fragments.i +++ b/wxPython/src/my_fragments.i @@ -1,3 +1,37 @@ +// There is a bug in the standard t_output_helper, this one will replace it +// until it is fixed. + + +%fragment("t_output_helper","header") %{ + static PyObject* t_output_helper(PyObject* target, PyObject* o) { + PyObject* o2; + PyObject* o3; + + if (!target) { + target = o; + } else if (target == Py_None) { + Py_DECREF(Py_None); + target = o; + } else { + if (!PyTuple_Check(target)) { + o2 = target; + target = PyTuple_New(1); + PyTuple_SetItem(target, 0, o2); + } + o3 = PyTuple_New(1); + PyTuple_SetItem(o3, 0, o); + + o2 = target; + target = PySequence_Concat(o2, o3); + Py_DECREF(o2); + Py_DECREF(o3); + } + return target; +} +%} + + + // These fragments are inserted in modules that need to convert PyObjects to // integer values, my versions allow any numeric type to be used, as long as // it can be converted to a PyInt. (Specifically, I allow floats where the