618 lines
22 KiB
Diff
618 lines
22 KiB
Diff
From 9756228d02e05661c15e0fc4b9a230d0d2b02d1b Mon Sep 17 00:00:00 2001
|
|
From: lingsheng <lingsheng1@h-partners.com>
|
|
Date: Fri, 23 Aug 2024 10:53:29 +0000
|
|
Subject: [PATCH] Revert PkClient: Replace the GSimpleAsyncResult with the
|
|
GTask API
|
|
|
|
Reverted patch:https://github.com/PackageKit/Packagekit/commit/b068646d2fbb246c590a47531688c69df2699fa6
|
|
|
|
---
|
|
lib/packagekit-glib2/pk-client.c | 164 ++++++++++++++++---------------
|
|
1 file changed, 86 insertions(+), 78 deletions(-)
|
|
|
|
diff --git a/lib/packagekit-glib2/pk-client.c b/lib/packagekit-glib2/pk-client.c
|
|
index c3eadc2..8792dd3 100644
|
|
--- a/lib/packagekit-glib2/pk-client.c
|
|
+++ b/lib/packagekit-glib2/pk-client.c
|
|
@@ -163,7 +163,7 @@ struct _PkClientState
|
|
GDBusProxy *proxy_props;
|
|
GCancellable *cancellable;
|
|
GCancellable *cancellable_client;
|
|
- GTask *res;
|
|
+ GSimpleAsyncResult *res;
|
|
PkBitfield filters;
|
|
PkClient *client;
|
|
PkProgress *progress;
|
|
@@ -210,15 +210,11 @@ pk_client_state_remove (PkClient *client, PkClientState *state)
|
|
}
|
|
}
|
|
|
|
-/*
|
|
- * pk_client_state_finish:
|
|
- * @state: (transfer full): the #PkClientState
|
|
- * @error: (transfer full): the #GError
|
|
- **/
|
|
static void
|
|
-pk_client_state_finish (PkClientState *state, GError *error)
|
|
+pk_client_state_finish (PkClientState *state, const GError *error)
|
|
{
|
|
gboolean ret;
|
|
+ g_autoptr(GError) error_local = NULL;
|
|
|
|
if (state->res == NULL)
|
|
return;
|
|
@@ -240,17 +236,15 @@ pk_client_state_finish (PkClientState *state, GError *error)
|
|
g_object_unref (G_OBJECT (state->proxy_props));
|
|
|
|
if (state->ret) {
|
|
- g_task_return_pointer (state->res,
|
|
- g_object_ref (state->results),
|
|
- g_object_unref);
|
|
+ g_simple_async_result_set_op_res_gpointer (state->res,
|
|
+ g_object_ref (state->results),
|
|
+ g_object_unref);
|
|
} else {
|
|
- g_task_return_error (state->res, error);
|
|
+ g_simple_async_result_set_from_error (state->res, error);
|
|
}
|
|
|
|
/* remove any socket file */
|
|
if (state->client_helper != NULL) {
|
|
- g_autoptr(GError) error_local = NULL;
|
|
-
|
|
if (!pk_client_helper_stop (state->client_helper, &error_local))
|
|
g_warning ("failed to stop the client helper: %s", error_local->message);
|
|
g_object_unref (state->client_helper);
|
|
@@ -259,6 +253,9 @@ pk_client_state_finish (PkClientState *state, GError *error)
|
|
/* remove from list */
|
|
pk_client_state_remove (state->client, state);
|
|
|
|
+ /* complete */
|
|
+ g_simple_async_result_complete_in_idle (state->res);
|
|
+
|
|
/* mark the state as finished */
|
|
g_clear_object (&state->res);
|
|
}
|
|
@@ -343,7 +340,7 @@ pk_client_cancel_cb (GObject *source_object,
|
|
g_debug ("failed to cancel: %s", error->message);
|
|
|
|
if (state)
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
}
|
|
}
|
|
|
|
@@ -370,7 +367,7 @@ pk_client_cancellable_cancel_cb (GCancellable *cancellable,
|
|
g_debug ("Cancelled, but no proxy, not sure what to do here");
|
|
local_error = g_error_new_literal (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED,
|
|
"PackageKit transaction disappeared");
|
|
- pk_client_state_finish (state, g_steal_pointer (&local_error));
|
|
+ pk_client_state_finish (state, local_error);
|
|
return;
|
|
}
|
|
|
|
@@ -396,10 +393,9 @@ pk_client_state_new (PkClient *client,
|
|
|
|
state = g_object_new (PK_TYPE_CLIENT_STATE, NULL);
|
|
state->role = role;
|
|
- state->cancellable = g_cancellable_new ();
|
|
- state->res = g_task_new (client, state->cancellable, callback_ready, user_data);
|
|
+ state->res = g_simple_async_result_new (G_OBJECT (client), callback_ready, user_data, source_tag);
|
|
state->client = g_object_ref (client);
|
|
- g_task_set_source_tag (state->res, source_tag);
|
|
+ state->cancellable = g_cancellable_new ();
|
|
|
|
if (cancellable != NULL) {
|
|
state->cancellable_client = g_object_ref (cancellable);
|
|
@@ -1007,7 +1003,7 @@ pk_client_copy_downloaded_finished_cb (GFile *file, GAsyncResult *res, PkClientS
|
|
|
|
/* get the result */
|
|
if (!g_file_copy_finish (file, res, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -1076,7 +1072,7 @@ pk_client_copy_downloaded_file (PkClientState *state, const gchar *package_id, c
|
|
PK_CLIENT_ERROR,
|
|
PK_ERROR_ENUM_FILE_CONFLICTS,
|
|
"file %s already exists", path);
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
g_file_copy_async (source, destination, G_FILE_COPY_OVERWRITE,
|
|
@@ -1182,7 +1178,7 @@ pk_client_signal_finished (PkClientState *state,
|
|
"Failed: %s",
|
|
pk_exit_enum_to_string (exit_enum));
|
|
}
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -1617,7 +1613,7 @@ pk_client_signal_cb (GDBusProxy *proxy,
|
|
local_error = g_error_new_literal (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED,
|
|
"PackageKit transaction disappeared");
|
|
|
|
- pk_client_state_finish (state, g_steal_pointer (&local_error));
|
|
+ pk_client_state_finish (state, local_error);
|
|
return;
|
|
}
|
|
}
|
|
@@ -1638,7 +1634,7 @@ pk_client_notify_name_owner_cb (GObject *obj,
|
|
|
|
local_error = g_error_new_literal (PK_CLIENT_ERROR, PK_CLIENT_ERROR_FAILED,
|
|
"PackageKit daemon disappeared");
|
|
- pk_client_state_finish (state, g_steal_pointer (&local_error));
|
|
+ pk_client_state_finish (state, local_error);
|
|
} else {
|
|
pk_client_state_unset_proxy (state);
|
|
g_cancellable_cancel (state->cancellable);
|
|
@@ -1695,7 +1691,7 @@ pk_client_method_cb (GObject *source_object,
|
|
if (value == NULL) {
|
|
/* fix up the D-Bus error */
|
|
pk_client_fixup_dbus_error (error);
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -1740,7 +1736,7 @@ pk_client_set_hints_cb (GObject *source_object,
|
|
if (value == NULL) {
|
|
/* fix up the D-Bus error */
|
|
pk_client_fixup_dbus_error (error);
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2352,7 +2348,7 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, gpointer user_data)
|
|
|
|
state->tid = pk_control_get_tid_finish (control, res, &error);
|
|
if (state->tid == NULL) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2385,11 +2381,17 @@ pk_client_get_tid_cb (GObject *object, GAsyncResult *res, gpointer user_data)
|
|
PkResults *
|
|
pk_client_generic_finish (PkClient *client, GAsyncResult *res, GError **error)
|
|
{
|
|
+ GSimpleAsyncResult *simple;
|
|
+
|
|
g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
|
|
- g_return_val_if_fail (G_IS_TASK (res), NULL);
|
|
+ g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
|
|
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
|
|
|
- return g_task_propagate_pointer (G_TASK (res), error);
|
|
+ simple = G_SIMPLE_ASYNC_RESULT (res);
|
|
+ if (g_simple_async_result_propagate_error (simple, error))
|
|
+ return NULL;
|
|
+
|
|
+ return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple));
|
|
}
|
|
|
|
/**
|
|
@@ -2432,7 +2434,7 @@ pk_client_resolve_async (PkClient *client, PkBitfield filters, gchar **packages,
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2485,7 +2487,7 @@ pk_client_search_names_async (PkClient *client, PkBitfield filters, gchar **valu
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2539,7 +2541,7 @@ pk_client_search_details_async (PkClient *client, PkBitfield filters, gchar **va
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2591,7 +2593,7 @@ pk_client_search_groups_async (PkClient *client, PkBitfield filters, gchar **val
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2643,7 +2645,7 @@ pk_client_search_files_async (PkClient *client, PkBitfield filters, gchar **valu
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2695,7 +2697,7 @@ pk_client_get_details_async (PkClient *client, gchar **package_ids, GCancellable
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2744,14 +2746,14 @@ pk_client_get_details_local_async (PkClient *client, gchar **files, GCancellable
|
|
state->progress = pk_progress_new ();
|
|
state->files = pk_client_convert_real_paths (files, &error);
|
|
if (state->files == NULL) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2800,14 +2802,14 @@ pk_client_get_files_local_async (PkClient *client, gchar **files, GCancellable *
|
|
state->progress = pk_progress_new ();
|
|
state->files = pk_client_convert_real_paths (files, &error);
|
|
if (state->files == NULL) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2859,7 +2861,7 @@ pk_client_get_update_detail_async (PkClient *client, gchar **package_ids, GCance
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2912,7 +2914,7 @@ pk_client_download_packages_async (PkClient *client, gchar **package_ids, const
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -2962,7 +2964,7 @@ pk_client_get_updates_async (PkClient *client, PkBitfield filters, GCancellable
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3012,7 +3014,7 @@ pk_client_get_old_transactions_async (PkClient *client, guint number, GCancellab
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3067,7 +3069,7 @@ pk_client_depends_on_async (PkClient *client, PkBitfield filters, gchar **packag
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3117,7 +3119,7 @@ pk_client_get_packages_async (PkClient *client, PkBitfield filters, GCancellable
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3172,7 +3174,7 @@ pk_client_required_by_async (PkClient *client, PkBitfield filters, gchar **packa
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3229,7 +3231,7 @@ pk_client_what_provides_async (PkClient *client,
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3278,7 +3280,7 @@ pk_client_get_distro_upgrades_async (PkClient *client, GCancellable *cancellable
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3329,7 +3331,7 @@ pk_client_get_files_async (PkClient *client, gchar **package_ids, GCancellable *
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3377,7 +3379,7 @@ pk_client_get_categories_async (PkClient *client, GCancellable *cancellable,
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3443,7 +3445,7 @@ pk_client_remove_packages_async (PkClient *client,
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3496,7 +3498,7 @@ pk_client_refresh_cache_async (PkClient *client, gboolean force, GCancellable *c
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3549,7 +3551,7 @@ pk_client_install_packages_async (PkClient *client, PkBitfield transaction_flags
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3603,7 +3605,7 @@ pk_client_install_signature_async (PkClient *client, PkSigTypeEnum type, const g
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3661,7 +3663,7 @@ pk_client_update_packages_async (PkClient *client,
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3686,7 +3688,7 @@ pk_client_copy_native_finished_cb (GFile *file, GAsyncResult *res, gpointer user
|
|
|
|
/* get the result */
|
|
if (!g_file_copy_finish (file, res, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3797,7 +3799,7 @@ pk_client_install_files_async (PkClient *client,
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3807,7 +3809,7 @@ pk_client_install_files_async (PkClient *client,
|
|
/* check files are valid */
|
|
state->files = pk_client_convert_real_paths (files, &error);
|
|
if (state->files == NULL) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3869,7 +3871,7 @@ pk_client_accept_eula_async (PkClient *client, const gchar *eula_id, GCancellabl
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3919,7 +3921,7 @@ pk_client_get_repo_list_async (PkClient *client, PkBitfield filters, GCancellabl
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -3971,7 +3973,7 @@ pk_client_repo_enable_async (PkClient *client, const gchar *repo_id, gboolean en
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -4026,7 +4028,7 @@ pk_client_repo_set_data_async (PkClient *client, const gchar *repo_id, const gch
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -4086,7 +4088,7 @@ pk_client_repo_remove_async (PkClient *client,
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -4147,7 +4149,7 @@ pk_client_upgrade_system_async (PkClient *client,
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -4205,7 +4207,7 @@ pk_client_repair_system_async (PkClient *client,
|
|
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL && g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -4234,7 +4236,7 @@ pk_client_adopt_get_proxy_cb (GObject *object,
|
|
|
|
state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
|
|
if (state->proxy == NULL) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -4287,7 +4289,7 @@ pk_client_adopt_async (PkClient *client,
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -4327,25 +4329,28 @@ pk_client_adopt_async (PkClient *client,
|
|
PkProgress *
|
|
pk_client_get_progress_finish (PkClient *client, GAsyncResult *res, GError **error)
|
|
{
|
|
+ GSimpleAsyncResult *simple;
|
|
+
|
|
g_return_val_if_fail (PK_IS_CLIENT (client), NULL);
|
|
- g_return_val_if_fail (G_IS_TASK (res), NULL);
|
|
+ g_return_val_if_fail (G_IS_SIMPLE_ASYNC_RESULT (res), NULL);
|
|
g_return_val_if_fail (error == NULL || *error == NULL, NULL);
|
|
|
|
- return g_task_propagate_pointer (G_TASK (res), error);
|
|
+ simple = G_SIMPLE_ASYNC_RESULT (res);
|
|
+ if (g_simple_async_result_propagate_error (simple, error))
|
|
+ return NULL;
|
|
+
|
|
+ return g_object_ref (g_simple_async_result_get_op_res_gpointer (simple));
|
|
}
|
|
|
|
/*
|
|
* pk_client_get_progress_state_finish:
|
|
- * @state: a #PkClientState
|
|
- * @error: (transfer full)
|
|
**/
|
|
static void
|
|
-pk_client_get_progress_state_finish (PkClientState *state, GError *error)
|
|
+pk_client_get_progress_state_finish (PkClientState *state, const GError *error)
|
|
{
|
|
if (state->cancellable_id > 0) {
|
|
g_cancellable_disconnect (state->cancellable_client,
|
|
state->cancellable_id);
|
|
- state->cancellable_id = 0;
|
|
}
|
|
g_clear_object (&state->cancellable);
|
|
g_clear_object (&state->cancellable_client);
|
|
@@ -4356,15 +4361,18 @@ pk_client_get_progress_state_finish (PkClientState *state, GError *error)
|
|
g_object_unref (G_OBJECT (state->proxy_props));
|
|
|
|
if (state->ret) {
|
|
- g_task_return_pointer (state->res,
|
|
- g_object_ref (state->progress),
|
|
- g_object_unref);
|
|
+ g_simple_async_result_set_op_res_gpointer (state->res,
|
|
+ g_object_ref (state->progress),
|
|
+ g_object_unref);
|
|
} else {
|
|
- g_task_return_error (state->res, g_steal_pointer (&error));
|
|
+ g_simple_async_result_set_from_error (state->res, error);
|
|
}
|
|
|
|
/* remove from list */
|
|
pk_client_state_remove (state->client, state);
|
|
+
|
|
+ /* complete */
|
|
+ g_simple_async_result_complete_in_idle (state->res);
|
|
}
|
|
|
|
/*
|
|
@@ -4380,7 +4388,7 @@ pk_client_get_progress_cb (GObject *source_object,
|
|
|
|
state->proxy = g_dbus_proxy_new_for_bus_finish (res, &error);
|
|
if (state->proxy == NULL) {
|
|
- pk_client_get_progress_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_get_progress_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
@@ -4425,7 +4433,7 @@ pk_client_get_progress_async (PkClient *client,
|
|
/* check not already cancelled */
|
|
if (cancellable != NULL &&
|
|
g_cancellable_set_error_if_cancelled (cancellable, &error)) {
|
|
- pk_client_state_finish (state, g_steal_pointer (&error));
|
|
+ pk_client_state_finish (state, error);
|
|
return;
|
|
}
|
|
|
|
--
|
|
2.33.0
|
|
|