summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorDenis Kenzior <denkenz@gmail.com>2009-12-01 22:53:45 -0600
committerDenis Kenzior <denkenz@gmail.com>2009-12-01 22:53:45 -0600
commitda496112b7d684e318ec366e3486800cec29eec3 (patch)
tree80a5d1b8463b7f0414cd95179c91f19e9a9ccaa6 /src
parentfc030de2ecd587c0dc86aaaaa77dc81d12f0fc5d (diff)
downloadofono-da496112b7d684e318ec366e3486800cec29eec3.tar.bz2
Fix: Don't forget to cleanup the atom watch
Diffstat (limited to 'src')
-rw-r--r--src/sms.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/sms.c b/src/sms.c
index de7e0fb8..8b27b9cb 100644
--- a/src/sms.c
+++ b/src/sms.c
@@ -836,12 +836,19 @@ void ofono_sms_driver_unregister(const struct ofono_sms_driver *d)
static void sms_unregister(struct ofono_atom *atom)
{
+ struct ofono_sms *sms = __ofono_atom_get_data(atom);
DBusConnection *conn = ofono_dbus_get_connection();
struct ofono_modem *modem = __ofono_atom_get_modem(atom);
const char *path = __ofono_atom_get_path(atom);
g_dbus_unregister_interface(conn, path, SMS_MANAGER_INTERFACE);
ofono_modem_remove_interface(modem, SMS_MANAGER_INTERFACE);
+
+ if (sms->mw_watch) {
+ __ofono_modem_remove_atom_watch(modem, sms->mw_watch);
+ sms->mw_watch = 0;
+ sms->mw = NULL;
+ }
}
static void sms_remove(struct ofono_atom *atom)