summaryrefslogtreecommitdiff
path: root/src/libostree/ostree-core.c
diff options
context:
space:
mode:
authorDaniel Kolesa <dkolesa@igalia.com>2022-02-17 20:12:18 +0100
committerDaniel Kolesa <dkolesa@igalia.com>2022-03-12 04:44:18 +0100
commitaca9e8e6a73c79554f320b85aafb4cb01e91ac5a (patch)
treef7f878b362fe2a78a0e5cc8d52ec670b39da7a80 /src/libostree/ostree-core.c
parent2f11977da52d0ad01a3fba3e680d6eda92210f11 (diff)
downloadostree-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.c38
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;