From ab51ed0521d16227a0496c972ddc0bbcd5c9cd74 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Thu, 12 Sep 2024 10:28:19 -0400 Subject: gio: Implement query_exists for resources This avoids allocations for this frequently used method. --- gio/gresourcefile.c | 10 ++++++++++ 1 file changed, 10 insertions(+) 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; } -- cgit v1.2.3-70-g09d2