Merge lp:~tiagosh/telephony-service/fix-observer-crash into lp:telephony-service

Proposed by Tiago Salem Herrmann
Status: Merged
Approved by: Gustavo Pichorim Boiko
Approved revision: 1126
Merged at revision: 1131
Proposed branch: lp:~tiagosh/telephony-service/fix-observer-crash
Merge into: lp:telephony-service
Diff against target: 44 lines (+5/-1)
2 files modified
libtelephonyservice/telepathyhelper.cpp (+4/-1)
libtelephonyservice/telepathyhelper.h (+1/-0)
To merge this branch: bzr merge lp:~tiagosh/telephony-service/fix-observer-crash
Reviewer Review Type Date Requested Status
Gustavo Pichorim Boiko (community) Approve
PS Jenkins bot continuous-integration Approve
Review via email: mp+275088@code.launchpad.net

Commit message

Keep reference of observer pointer so it doesn't get deleted.

Description of the change

Keep reference of observer pointer so it doesn't get deleted.

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
Gustavo Pichorim Boiko (boiko) wrote :

Looks good and works as expected!

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'libtelephonyservice/telepathyhelper.cpp'
2--- libtelephonyservice/telepathyhelper.cpp 2015-07-02 03:22:47 +0000
3+++ libtelephonyservice/telepathyhelper.cpp 2015-10-20 19:27:09 +0000
4@@ -48,6 +48,7 @@
5 mDefaultCallAccount(NULL),
6 mDefaultMessagingAccount(NULL),
7 mChannelObserver(0),
8+ mChannelObserverPtr(NULL),
9 mFirstTime(true),
10 mConnected(false),
11 mHandlerInterface(0),
12@@ -245,10 +246,11 @@
13 }
14
15 if (mChannelObserver) {
16- mChannelObserver->deleteLater();
17+ unregisterClient(mChannelObserver);
18 }
19
20 mChannelObserver = new ChannelObserver(this);
21+ mChannelObserverPtr = Tp::AbstractClientPtr(mChannelObserver);
22 if (registerClient(mChannelObserver, name)) {
23 // messages
24 connect(mChannelObserver, SIGNAL(textChannelAvailable(Tp::TextChannelPtr)),
25@@ -266,6 +268,7 @@
26 {
27 unregisterClient(mChannelObserver);
28 mChannelObserver->deleteLater();
29+ mChannelObserverPtr.reset();
30 mChannelObserver = NULL;
31 Q_EMIT channelObserverUnregistered();
32 }
33
34=== modified file 'libtelephonyservice/telepathyhelper.h'
35--- libtelephonyservice/telepathyhelper.h 2015-06-10 21:05:50 +0000
36+++ libtelephonyservice/telepathyhelper.h 2015-10-20 19:27:09 +0000
37@@ -147,6 +147,7 @@
38 AccountEntry *mDefaultCallAccount;
39 AccountEntry *mDefaultMessagingAccount;
40 ChannelObserver *mChannelObserver;
41+ Tp::AbstractClientPtr mChannelObserverPtr;
42 bool mFirstTime;
43 bool mConnected;
44 bool mMmsGroupChat;

Subscribers

People subscribed via source and target branches