diff options
Diffstat (limited to 'PySide/QtCore/typesystem_core.xml')
-rw-r--r-- | PySide/QtCore/typesystem_core.xml | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/PySide/QtCore/typesystem_core.xml b/PySide/QtCore/typesystem_core.xml index ecbe25059..83f69dffc 100644 --- a/PySide/QtCore/typesystem_core.xml +++ b/PySide/QtCore/typesystem_core.xml @@ -1489,10 +1489,9 @@ <inject-code class="target" position="beginning"> // Avoid return +1 because SignalManager connect to "destroyed()" signal to control object timelife int ret = %CPPSELF.%FUNCTION_NAME(%1); - if (ret > 0 && ((strcmp(%1, SIGNAL(destroyed())) == 0) || (strcmp(%1, SIGNAL(destroyed(QObject*))) == 0))) { - if (PySide::SignalManager::instance().hasConnectionWith(%CPPSELF)) - ret--; - } + if (ret > 0 && ((strcmp(%1, SIGNAL(destroyed())) == 0) || (strcmp(%1, SIGNAL(destroyed(QObject*))) == 0))) + ret -= PySide::SignalManager::instance().countConnectionsWith(%CPPSELF); + %PYARG_0 = %CONVERTTOPYTHON[int](ret); </inject-code> </modify-function> @@ -1507,6 +1506,19 @@ <modify-argument index="return"> <define-ownership owner="default"/> </modify-argument> + </modify-function> + + <!-- This is not supported due the lack of information durring the call with no arguments, this can cause a memory leak --> + <modify-function signature="disconnect(const char*, const QObject *, const char *)"> + <modify-argument index="1"> + <remove-default-expression /> + </modify-argument> + <modify-argument index="2"> + <remove-default-expression /> + </modify-argument> + <modify-argument index="3"> + <remove-default-expression /> + </modify-argument> </modify-function> </object-type> <object-type name="QAbstractListModel" polymorphic-id-expression="qobject_cast<QAbstractListModel*>(%1)"> |