diff options
author | Thomas Haller <thaller@redhat.com> | 2019-10-14 13:16:49 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2019-10-18 22:09:18 +0200 |
commit | 166095fe4e2d9b7c44e7c794909cad9e405f75f4 (patch) | |
tree | f144731196d1b3278aad2ccbb3ba9c916431e4f7 | |
parent | a5b2ba02ea138737ab9f04c4e5a3e62eed9bc380 (diff) | |
download | NetworkManager-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.c | 45 |
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 |