diff options
author | Aleksander Morgado <aleksander@lanedo.com> | 2011-12-19 20:40:54 +0100 |
---|---|---|
committer | Aleksander Morgado <aleksander@lanedo.com> | 2012-03-15 14:14:35 +0100 |
commit | 534aeb0c8ac83126048353b8f30128cd6f1cd92a (patch) | |
tree | 5a0c768b38ef761421765598428c353519cfb810 /cli/mmcli-bearer.c | |
parent | cd6caf61061e18736ecf0ddd4834c1ad1fbcb7c2 (diff) |
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.
Diffstat (limited to 'cli/mmcli-bearer.c')
-rw-r--r-- | cli/mmcli-bearer.c | 15 |
1 files changed, 13 insertions, 2 deletions
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) { |