diff options
author | Daniel Kolesa <dkolesa@igalia.com> | 2022-02-17 20:12:18 +0100 |
---|---|---|
committer | Daniel Kolesa <dkolesa@igalia.com> | 2022-03-12 04:44:18 +0100 |
commit | aca9e8e6a73c79554f320b85aafb4cb01e91ac5a (patch) | |
tree | f7f878b362fe2a78a0e5cc8d52ec670b39da7a80 /src/libostree/ostree-core.c | |
parent | 2f11977da52d0ad01a3fba3e680d6eda92210f11 (diff) | |
download | ostree-aca9e8e6a73c79554f320b85aafb4cb01e91ac5a.tar.gz |
glib: bump glib requirement to 2.66 and port to GUri
This removes the old SoupURI copypasta from previous generation
of libsoup and opens up a path for a simple libsoup3 port.
Diffstat (limited to 'src/libostree/ostree-core.c')
-rw-r--r-- | src/libostree/ostree-core.c | 38 |
1 files changed, 23 insertions, 15 deletions
diff --git a/src/libostree/ostree-core.c b/src/libostree/ostree-core.c index f0d0e698..794f0e11 100644 --- a/src/libostree/ostree-core.c +++ b/src/libostree/ostree-core.c @@ -1,5 +1,6 @@ /* * Copyright (C) 2011 Colin Walters <walters@verbum.org> + * Copyright (C) 2022 Igalia S.L. * * SPDX-License-Identifier: LGPL-2.0+ * @@ -1031,19 +1032,22 @@ typedef struct { } ChecksumFileAsyncData; static void -checksum_file_async_thread (GSimpleAsyncResult *res, +checksum_file_async_thread (GTask *task, GObject *object, + gpointer datap, GCancellable *cancellable) { GError *error = NULL; - ChecksumFileAsyncData *data; + ChecksumFileAsyncData *data = datap; guchar *csum = NULL; - data = g_simple_async_result_get_op_res_gpointer (res); if (!ostree_checksum_file (data->f, data->objtype, &csum, cancellable, &error)) - g_simple_async_result_take_error (res, error); + g_task_return_error (task, error); else - data->csum = csum; + { + data->csum = csum; + g_task_return_pointer (task, data, NULL); + } } static void @@ -1076,18 +1080,18 @@ ostree_checksum_file_async (GFile *f, GAsyncReadyCallback callback, gpointer user_data) { - GSimpleAsyncResult *res; + g_autoptr(GTask) task = NULL; ChecksumFileAsyncData *data; data = g_new0 (ChecksumFileAsyncData, 1); data->f = g_object_ref (f); data->objtype = objtype; - res = g_simple_async_result_new (G_OBJECT (f), callback, user_data, ostree_checksum_file_async); - g_simple_async_result_set_op_res_gpointer (res, data, (GDestroyNotify)checksum_file_async_data_free); - - g_simple_async_result_run_in_thread (res, checksum_file_async_thread, io_priority, cancellable); - g_object_unref (res); + task = g_task_new (G_OBJECT (f), cancellable, callback, user_data); + g_task_set_task_data (task, data, (GDestroyNotify)checksum_file_async_data_free); + g_task_set_priority (task, io_priority); + g_task_set_source_tag (task, ostree_checksum_file_async); + g_task_run_in_thread (task, (GTaskThreadFunc)checksum_file_async_thread); } /** @@ -1106,15 +1110,19 @@ ostree_checksum_file_async_finish (GFile *f, guchar **out_csum, GError **error) { - GSimpleAsyncResult *simple = G_SIMPLE_ASYNC_RESULT (result); ChecksumFileAsyncData *data; - g_warn_if_fail (g_simple_async_result_get_source_tag (simple) == ostree_checksum_file_async); + g_return_val_if_fail (G_IS_FILE (f), FALSE); + g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE); + g_return_val_if_fail (error == NULL || *error == NULL, FALSE); + g_return_val_if_fail (g_task_is_valid (result, f), FALSE); + g_return_val_if_fail (g_async_result_is_tagged (result, ostree_checksum_file_async), FALSE); + + data = g_task_propagate_pointer (G_TASK (result), error); - if (g_simple_async_result_propagate_error (simple, error)) + if (data == NULL) return FALSE; - data = g_simple_async_result_get_op_res_gpointer (simple); /* Transfer ownership */ *out_csum = data->csum; data->csum = NULL; |