mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-06-19 20:38:36 +02:00
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().
This commit is contained in:
parent
a5b2ba02ea
commit
166095fe4e
1 changed files with 15 additions and 30 deletions
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue