summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Haller <thaller@redhat.com>2019-10-14 13:16:49 +0200
committerThomas Haller <thaller@redhat.com>2019-10-18 22:09:18 +0200
commit166095fe4e2d9b7c44e7c794909cad9e405f75f4 (patch)
treef144731196d1b3278aad2ccbb3ba9c916431e4f7
parenta5b2ba02ea138737ab9f04c4e5a3e62eed9bc380 (diff)
downloadNetworkManager-166095fe4e2d9b7c44e7c794909cad9e405f75f4.tar.gz
libnm: don't use GSimpleAsyncResult for nm_client_new_async()
As we don't have any data or our own, we don't need a GSimpleAsyncResult/GTask. Just pass the caller's @callback to g_async_initable_new_async().
-rw-r--r--libnm/nm-client.c45
1 files changed, 15 insertions, 30 deletions
diff --git a/libnm/nm-client.c b/libnm/nm-client.c
index 97eaf01032..9ad3a874d8 100644
--- a/libnm/nm-client.c
+++ b/libnm/nm-client.c
@@ -3751,20 +3751,6 @@ nm_client_new (GCancellable *cancellable,
NULL);
}
-static void
-client_inited (GObject *source, GAsyncResult *result, gpointer user_data)
-{
- GSimpleAsyncResult *simple = user_data;
- GError *error = NULL;
-
- if (!g_async_initable_new_finish (G_ASYNC_INITABLE (source), result, &error))
- g_simple_async_result_take_error (simple, error);
- else
- g_simple_async_result_set_op_res_gpointer (simple, source, g_object_unref);
- g_simple_async_result_complete (simple);
- g_object_unref (simple);
-}
-
/**
* nm_client_new_async:
* @cancellable: a #GCancellable, or %NULL
@@ -3781,14 +3767,11 @@ nm_client_new_async (GCancellable *cancellable,
GAsyncReadyCallback callback,
gpointer user_data)
{
- GSimpleAsyncResult *simple;
-
- simple = g_simple_async_result_new (NULL, callback, user_data, nm_client_new_async);
- if (cancellable)
- g_simple_async_result_set_check_cancellable (simple, cancellable);
-
- g_async_initable_new_async (NM_TYPE_CLIENT, G_PRIORITY_DEFAULT,
- cancellable, client_inited, simple,
+ g_async_initable_new_async (NM_TYPE_CLIENT,
+ G_PRIORITY_DEFAULT,
+ cancellable,
+ callback,
+ user_data,
NULL);
}
@@ -3804,16 +3787,18 @@ nm_client_new_async (GCancellable *cancellable,
NMClient *
nm_client_new_finish (GAsyncResult *result, GError **error)
{
- GSimpleAsyncResult *simple;
+ gs_unref_object GObject *source_object = NULL;
+ GObject *object;
- g_return_val_if_fail (g_simple_async_result_is_valid (result, NULL, nm_client_new_async), NULL);
- g_return_val_if_fail (error == NULL || *error == NULL, FALSE);
+ source_object = g_async_result_get_source_object (result);
+ g_return_val_if_fail (source_object, NULL);
- simple = G_SIMPLE_ASYNC_RESULT (result);
- if (g_simple_async_result_propagate_error (simple, error))
- return NULL;
- else
- return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple));
+ object = g_async_initable_new_finish (G_ASYNC_INITABLE (source_object),
+ result,
+ error);
+ g_return_val_if_fail (!object || NM_IS_CLIENT (object), FALSE);
+
+ return NM_CLIENT (object);
}
static void