cdma-voicecall: Fix for crash when unregistering atom

This commit is contained in:
Dara Spieker-Doyle 2011-06-13 16:01:31 -07:00 committed by Denis Kenzior
parent b91726213c
commit 388fe2f45a
1 changed files with 14 additions and 0 deletions

View File

@ -335,6 +335,18 @@ void ofono_cdma_voicecall_driver_unregister(
g_drivers = g_slist_remove(g_drivers, (void *)d);
}
static void cdma_voicecall_unregister(struct ofono_atom *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,
OFONO_CDMA_VOICECALL_MANAGER_INTERFACE);
ofono_modem_remove_interface(modem,
OFONO_CDMA_VOICECALL_MANAGER_INTERFACE);
}
static void voicecall_manager_remove(struct ofono_atom *atom)
{
struct ofono_cdma_voicecall *vc = __ofono_atom_get_data(atom);
@ -405,6 +417,8 @@ void ofono_cdma_voicecall_register(struct ofono_cdma_voicecall *vc)
ofono_modem_add_interface(modem,
OFONO_CDMA_VOICECALL_MANAGER_INTERFACE);
__ofono_atom_register(vc->atom, cdma_voicecall_unregister);
}
void ofono_cdma_voicecall_remove(struct ofono_cdma_voicecall *vc)