aboutsummaryrefslogtreecommitdiff
path: root/src/mm-base-manager.c
diff options
context:
space:
mode:
authorAleksander Morgado <aleksander@aleksander.es>2020-01-02 11:48:20 +0100
committerDan Williams <dcbw@redhat.com>2020-01-06 20:46:06 +0000
commit941879b43af4848b444fd299ec18fb4d92729642 (patch)
tree2f31e97dc00a4336726c5ca7cd0846ffa2e2d8b3 /src/mm-base-manager.c
parentdebec6f650e395eaa722da62ce89dab2d754a059 (diff)
device: keep reference to object manager server
Instead of having the reference to the object manager server only while the modem is exported, just keep a reference for as long as the device object exists. This will make it easier to handle reprobing logic.
Diffstat (limited to 'src/mm-base-manager.c')
-rw-r--r--src/mm-base-manager.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/mm-base-manager.c b/src/mm-base-manager.c
index 55382e30..d5899466 100644
--- a/src/mm-base-manager.c
+++ b/src/mm-base-manager.c
@@ -192,7 +192,7 @@ device_support_check_ready (MMPluginManager *plugin_manager,
mm_device_set_plugin (ctx->device, G_OBJECT (plugin));
g_object_unref (plugin);
- if (!mm_device_create_modem (ctx->device, ctx->self->priv->object_manager, &error)) {
+ if (!mm_device_create_modem (ctx->device, &error)) {
mm_warn ("Couldn't create modem for device '%s': %s",
mm_device_get_uid (ctx->device), error->message);
g_error_free (error);
@@ -368,7 +368,7 @@ device_added (MMBaseManager *manager,
subsys, name, physdev_uid);
/* Keep the device listed in the Manager */
- device = mm_device_new (physdev_uid, hotplugged, FALSE);
+ device = mm_device_new (physdev_uid, hotplugged, FALSE, manager->priv->object_manager);
g_hash_table_insert (manager->priv->devices,
g_strdup (physdev_uid),
device);
@@ -1084,7 +1084,7 @@ remove_device_inhibition (MMBaseManager *self,
GError *error = NULL;
/* Uninhibit device, which will create and expose the modem object */
- if (!mm_device_uninhibit (device, self->priv->object_manager, &error)) {
+ if (!mm_device_uninhibit (device, &error)) {
mm_warn ("Couldn't uninhibit device: %s", error->message);
g_error_free (error);
}
@@ -1271,7 +1271,7 @@ handle_set_profile (MmGdbusTest *skeleton,
/* Create device and keep it listed in the Manager */
physdev_uid = g_strdup_printf ("/virtual/%s", id);
- device = mm_device_new (physdev_uid, TRUE, TRUE);
+ device = mm_device_new (physdev_uid, TRUE, TRUE, self->priv->object_manager);
g_hash_table_insert (self->priv->devices, physdev_uid, device);
/* Grab virtual ports */
@@ -1292,7 +1292,7 @@ handle_set_profile (MmGdbusTest *skeleton,
mm_device_set_plugin (device, G_OBJECT (plugin));
/* Create modem */
- if (!mm_device_create_modem (device, self->priv->object_manager, &error)) {
+ if (!mm_device_create_modem (device, &error)) {
mm_warn ("Couldn't create modem for virtual device '%s': %s",
mm_device_get_uid (device),
error->message);