diff options
author | Renato Filho <renato.filho@openbossa.org> | 2011-08-26 18:42:26 -0300 |
---|---|---|
committer | Hugo Parente Lima <hugo.pl@gmail.com> | 2012-03-08 16:54:48 -0300 |
commit | b6068afc3eb822fea7846b294e56412a16d8da56 (patch) | |
tree | c2140c7e90b735a091bbd065021e8692f3a55172 /libpyside/signalmanager.cpp | |
parent | e59a9f833f4cb1a891bd84bf87f11c1538496bef (diff) |
Fixed SignalManager bug during anonymous signal connection.
Reviewed by: Hugo Parente <hugo.lima@openbossa.org>
Luciano Wolf <luciano.wolf@openbossa.org>
Diffstat (limited to 'libpyside/signalmanager.cpp')
-rw-r--r-- | libpyside/signalmanager.cpp | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/libpyside/signalmanager.cpp b/libpyside/signalmanager.cpp index bd455c9c3..002d8f9e0 100644 --- a/libpyside/signalmanager.cpp +++ b/libpyside/signalmanager.cpp @@ -275,10 +275,12 @@ QObject* SignalManager::globalReceiver(QObject *sender, PyObject *callback) SharedMap globalReceivers = m_d->m_globalReceivers; QByteArray hash = GlobalReceiverV2::hash(callback); GlobalReceiverV2* gr = 0; - if (!globalReceivers->contains(hash) && sender) { + if (!globalReceivers->contains(hash)) { gr = (*globalReceivers)[hash] = new GlobalReceiverV2(callback, globalReceivers); - gr->incRef(sender); // create a link reference - gr->decRef(); // remove extra reference + if (sender) { + gr->incRef(sender); // create a link reference + gr->decRef(); // remove extra reference + } } else { gr = (*globalReceivers)[hash]; if (sender) |