Fixed SignalManager bug during anonymous signal connection.
Reviewed by: Hugo Parente <hugo.lima@openbossa.org>
Luciano Wolf <luciano.wolf@openbossa.org>
This commit is contained in:
parent
e59a9f833f
commit
b6068afc3e
1 changed files with 5 additions and 3 deletions
|
|
@ -275,10 +275,12 @@ QObject* SignalManager::globalReceiver(QObject *sender, PyObject *callback)
|
||||||
SharedMap globalReceivers = m_d->m_globalReceivers;
|
SharedMap globalReceivers = m_d->m_globalReceivers;
|
||||||
QByteArray hash = GlobalReceiverV2::hash(callback);
|
QByteArray hash = GlobalReceiverV2::hash(callback);
|
||||||
GlobalReceiverV2* gr = 0;
|
GlobalReceiverV2* gr = 0;
|
||||||
if (!globalReceivers->contains(hash) && sender) {
|
if (!globalReceivers->contains(hash)) {
|
||||||
gr = (*globalReceivers)[hash] = new GlobalReceiverV2(callback, globalReceivers);
|
gr = (*globalReceivers)[hash] = new GlobalReceiverV2(callback, globalReceivers);
|
||||||
gr->incRef(sender); // create a link reference
|
if (sender) {
|
||||||
gr->decRef(); // remove extra reference
|
gr->incRef(sender); // create a link reference
|
||||||
|
gr->decRef(); // remove extra reference
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
gr = (*globalReceivers)[hash];
|
gr = (*globalReceivers)[hash];
|
||||||
if (sender)
|
if (sender)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue