Merge lp:~nick-dedekind/qmenumodel/lp1378941-disconnect-signals into lp:qmenumodel

Proposed by Nick Dedekind
Status: Merged
Approved by: Lars Karlitski
Approved revision: 113
Merged at revision: 113
Proposed branch: lp:~nick-dedekind/qmenumodel/lp1378941-disconnect-signals
Merge into: lp:qmenumodel
Diff against target: 32 lines (+8/-7)
1 file modified
libqmenumodel/src/qdbusactiongroup.cpp (+8/-7)
To merge this branch: bzr merge lp:~nick-dedekind/qmenumodel/lp1378941-disconnect-signals
Reviewer Review Type Date Requested Status
Lars Karlitski (community) Approve
Michael Sheldon (community) Approve
Charles Kerr (community) Approve
PS Jenkins bot (community) continuous-integration Approve
Review via email: mp+238013@code.launchpad.net

Commit message

Disconnect QDBusActionGroup add/remove/stateChange signals when deleting object.

Description of the change

Disconnect QDBusActionGroup add/remove/stateChange signals when deleting object.

To post a comment you must log in.
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Charles Kerr (charlesk) :
review: Approve
Revision history for this message
Charles Kerr (charlesk) :
review: Approve
Revision history for this message
Michael Sheldon (michael-sheldon) wrote :

Haven't been able to reproduce the crash since installing this branch, so that's a big +1 from me, thanks!

review: Approve
Revision history for this message
Lars Karlitski (larsu) wrote :

Yep, looks right. Thanks

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'libqmenumodel/src/qdbusactiongroup.cpp'
2--- libqmenumodel/src/qdbusactiongroup.cpp 2013-08-09 08:01:43 +0000
3+++ libqmenumodel/src/qdbusactiongroup.cpp 2014-10-10 17:35:05 +0000
4@@ -161,13 +161,7 @@
5 return;
6 }
7
8- if (m_actionGroup) {
9- g_signal_handler_disconnect(m_actionGroup, m_signalActionAddId);
10- g_signal_handler_disconnect(m_actionGroup, m_signalActionRemovedId);
11- g_signal_handler_disconnect(m_actionGroup, m_signalStateChangedId);
12- m_signalActionAddId = m_signalActionRemovedId = m_signalStateChangedId = 0;
13- clear();
14- }
15+ clear();
16
17 m_actionGroup = reinterpret_cast<GActionGroup*>(ag);
18
19@@ -199,6 +193,13 @@
20 /*! \internal */
21 void QDBusActionGroup::clear()
22 {
23+ if (m_actionGroup) {
24+ g_signal_handler_disconnect(m_actionGroup, m_signalActionAddId);
25+ g_signal_handler_disconnect(m_actionGroup, m_signalActionRemovedId);
26+ g_signal_handler_disconnect(m_actionGroup, m_signalStateChangedId);
27+ m_signalActionAddId = m_signalActionRemovedId = m_signalStateChangedId = 0;
28+ }
29+
30 Q_FOREACH(QStateAction *act, this->findChildren<QStateAction*>()) {
31 Q_EMIT actionVanish(act->name());
32 }

Subscribers

People subscribed via source and target branches