diff options
Diffstat (limited to 'libpyside/pysidesignal.cpp')
-rw-r--r-- | libpyside/pysidesignal.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/libpyside/pysidesignal.cpp b/libpyside/pysidesignal.cpp index 782aeb5b7..7fdb01fb7 100644 --- a/libpyside/pysidesignal.cpp +++ b/libpyside/pysidesignal.cpp @@ -751,6 +751,17 @@ static typename T::value_type join(T t, const char* sep) return res; } +static void _addSignalToWrapper(SbkObjectType* wrapperType, const char* signalName, PySideSignal* signal) +{ + PyObject* typeDict = wrapperType->super.ht_type.tp_dict; + PyObject* homonymousMethod; + if ((homonymousMethod = PyDict_GetItemString(typeDict, signalName))) { + Py_INCREF(homonymousMethod); + signal->homonymousMethod = homonymousMethod; + } + PyDict_SetItemString(typeDict, signalName, reinterpret_cast<PyObject*>(signal)); +} + void registerSignals(SbkObjectType* pyObj, const QMetaObject* metaObject) { typedef QHash<QByteArray, QList<QByteArray> > SignalSigMap; @@ -779,7 +790,7 @@ void registerSignals(SbkObjectType* pyObj, const QMetaObject* metaObject) SignalSigMap::mapped_type::const_iterator endJ = it.value().end(); for (; j != endJ; ++j) appendSignature(self, strdup(j->constData())); - addSignalToWrapper(pyObj, it.key(), self); + _addSignalToWrapper(pyObj, it.key(), self); Py_DECREF((PyObject*) self); } } @@ -795,13 +806,7 @@ PyObject* buildQtCompatible(const char* signature) void addSignalToWrapper(SbkObjectType* wrapperType, const char* signalName, PySideSignal* signal) { - PyObject* typeDict = wrapperType->super.ht_type.tp_dict; - PyObject* homonymousMethod; - if ((homonymousMethod = PyDict_GetItemString(typeDict, signalName))) { - Py_INCREF(homonymousMethod); - signal->homonymousMethod = homonymousMethod; - } - PyDict_SetItemString(typeDict, signalName, reinterpret_cast<PyObject*>(signal)); + _addSignalToWrapper(wrapperType, signalName, signal); } PyObject* getObject(PySideSignalInstance* signal) |