From 534aeb0c8ac83126048353b8f30128cd6f1cd92a Mon Sep 17 00:00:00 2001 From: Aleksander Morgado Date: Mon, 19 Dec 2011 20:40:54 +0100 Subject: cli: always keep a MMManager around In order to receive signals in the GDBusObjects retrieved from the GDBusObjectManagerClient, we need to keep a reference of the client around. --- cli/mmcli-bearer.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'cli/mmcli-bearer.c') diff --git a/cli/mmcli-bearer.c b/cli/mmcli-bearer.c index 382a0f8d..baeb2c8b 100644 --- a/cli/mmcli-bearer.c +++ b/cli/mmcli-bearer.c @@ -35,6 +35,8 @@ /* Context */ typedef struct { + MMManager *manager; + MMObject *object; GCancellable *cancellable; MMBearer *bearer; } Context; @@ -119,6 +121,10 @@ context_free (Context *ctx) g_object_unref (ctx->cancellable); if (ctx->bearer) g_object_unref (ctx->bearer); + if (ctx->object) + g_object_unref (ctx->object); + if (ctx->manager) + g_object_unref (ctx->manager); g_free (ctx); } @@ -264,7 +270,9 @@ get_bearer_ready (GObject *source, GAsyncResult *result, gpointer none) { - ctx->bearer = mmcli_get_bearer_finish (result); + ctx->bearer = mmcli_get_bearer_finish (result, + &ctx->manager, + &ctx->object); if (info_flag) g_assert_not_reached (); @@ -317,7 +325,10 @@ mmcli_bearer_run_synchronous (GDBusConnection *connection) /* Initialize context */ ctx = g_new0 (Context, 1); - ctx->bearer = mmcli_get_bearer_sync (connection, bearer_str); + ctx->bearer = mmcli_get_bearer_sync (connection, + bearer_str, + &ctx->manager, + &ctx->object); /* Request to get info from bearer? */ if (info_flag) { -- cgit v1.2.3-70-g09d2