aboutsummaryrefslogtreecommitdiffstats
path: root/libpyside
diff options
context:
space:
mode:
authorRenato Filho <renato.filho@openbossa.org>2011-08-26 18:42:26 -0300
committerHugo Parente Lima <hugo.pl@gmail.com>2012-03-08 16:54:48 -0300
commitb6068afc3eb822fea7846b294e56412a16d8da56 (patch)
treec2140c7e90b735a091bbd065021e8692f3a55172 /libpyside
parente59a9f833f4cb1a891bd84bf87f11c1538496bef (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')
-rw-r--r--libpyside/signalmanager.cpp8
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)