X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/72797a7da3f02b1b71949d4ea8827529a2c8c7b1..f52640f373f873596bdcd99bd5a1876965616bd3:/wxPython/src/msw/misc2.cpp diff --git a/wxPython/src/msw/misc2.cpp b/wxPython/src/msw/misc2.cpp index 1ae38fbb59..0f2e7c818c 100644 --- a/wxPython/src/msw/misc2.cpp +++ b/wxPython/src/msw/misc2.cpp @@ -145,9 +145,11 @@ public: virtual void DoLog(wxLogLevel level, const wxChar *szString, time_t t) { bool found; wxPyBeginBlockThreads(); - if ((found = wxPyCBH_findCallback(m_myInst, "DoLog"))) - wxPyCBH_callCallback(m_myInst, Py_BuildValue("(iOi)", level, - wx2PyString(szString), t)); + if ((found = wxPyCBH_findCallback(m_myInst, "DoLog"))) { + PyObject* s = wx2PyString(szString); + wxPyCBH_callCallback(m_myInst, Py_BuildValue("(iOi)", level, s, t)); + Py_DECREF(s); + } wxPyEndBlockThreads(); if (! found) wxLog::DoLog(level, szString, t); @@ -156,9 +158,11 @@ public: virtual void DoLogString(const wxChar *szString, time_t t) { bool found; wxPyBeginBlockThreads(); - if ((found = wxPyCBH_findCallback(m_myInst, "DoLogString"))) - wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", - wx2PyString(szString), t)); + if ((found = wxPyCBH_findCallback(m_myInst, "DoLogString"))) { + PyObject* s = wx2PyString(szString); + wxPyCBH_callCallback(m_myInst, Py_BuildValue("(Oi)", s, t)); + Py_DECREF(s); + } wxPyEndBlockThreads(); if (! found) wxLog::DoLogString(szString, t); @@ -289,20 +293,13 @@ public: PyObject* so = wxPyConstructObject((void*)&size, "wxSize", 0); PyObject* ro; wxBitmap* ptr; -#if 0 - ro = wxPyCBH_callCallbackObj( - m_myInst, Py_BuildValue("(OOO)", - wx2PyString(id), - wx2PyString(client), - so)); -#else // testing... - PyObject *args, *s1, *s2; + PyObject* s1, *s2; s1 = wx2PyString(id); s2 = wx2PyString(client); - args = Py_BuildValue("(OOO)", s1, s2, so); - ro = wxPyCBH_callCallbackObj(m_myInst, args); -#endif + ro = wxPyCBH_callCallbackObj(m_myInst, Py_BuildValue("(OOO)", s1, s2, so)); Py_DECREF(so); + Py_DECREF(s1); + Py_DECREF(s2); if (ro) { if (!SWIG_GetPtrObj(ro, (void**)&ptr, "_wxBitmap_p")) rval = *ptr;