Refactor: modem de-registration
authorDenis Kenzior <denkenz@gmail.com>
Wed, 2 Dec 2009 21:40:45 +0000 (15:40 -0600)
committerDenis Kenzior <denkenz@gmail.com>
Thu, 3 Dec 2009 01:10:07 +0000 (19:10 -0600)
src/modem.c

index e6fd1fe..ec723e5 100644 (file)
@@ -1145,11 +1145,8 @@ static void modem_unregister(struct ofono_modem *modem)
 {
        DBusConnection *conn = ofono_dbus_get_connection();
 
-       if (modem->driver == NULL)
-               return;
-
-       remove_all_atoms(modem);
-       modem->call_ids = 0;
+       if (modem->powered == TRUE)
+               set_powered(modem, FALSE);
 
        __ofono_watchlist_free(modem->atom_watches);
        modem->atom_watches = NULL;
@@ -1178,10 +1175,7 @@ static void modem_unregister(struct ofono_modem *modem)
 
        g_dbus_unregister_interface(conn, modem->path, OFONO_MODEM_INTERFACE);
 
-       if (modem->powered == TRUE)
-               set_powered(modem, FALSE);
-
-       if (modem->driver->remove)
+       if (modem->driver && modem->driver->remove)
                modem->driver->remove(modem);
 
        g_hash_table_destroy(modem->properties);