summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2024-09-12 10:28:19 -0400
committerPhilip Withnall <pwithnall@gnome.org>2024-10-01 16:35:54 +0100
commitab51ed0521d16227a0496c972ddc0bbcd5c9cd74 (patch)
tree86a9c6523644e0bc6a5bf1be4e11a0abd1131b55
parent65ad41d8a473b4d47f1e470013caff93d50791d8 (diff)
gio: Implement query_exists for resources
This avoids allocations for this frequently used method.
-rw-r--r--gio/gresourcefile.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gio/gresourcefile.c b/gio/gresourcefile.c
index 5b772d94b..da1f368e5 100644
--- a/gio/gresourcefile.c
+++ b/gio/gresourcefile.c
@@ -657,6 +657,15 @@ g_resource_file_set_display_name (GFile *file,
return NULL;
}
+static gboolean
+g_resource_file_query_exists (GFile *file,
+ GCancellable *cancellable)
+{
+ GResourceFile *resource = G_RESOURCE_FILE (file);
+
+ return g_resources_get_info (resource->path, 0, NULL, NULL, NULL);
+}
+
static void
g_resource_file_file_iface_init (GFileIface *iface)
{
@@ -683,6 +692,7 @@ g_resource_file_file_iface_init (GFileIface *iface)
iface->query_writable_namespaces = g_resource_file_query_writable_namespaces;
iface->read_fn = g_resource_file_read;
iface->monitor_file = g_resource_file_monitor_file;
+ iface->query_exists = g_resource_file_query_exists;
iface->supports_thread_contexts = TRUE;
}