gresource: Remove unnecessary errors from g_resources_get_info()

As with the previous commit:

The error here can only ever be `G_RESOURCE_ERROR_NOT_FOUND`, which
`g_resources_get_info()` immediately frees. So let’s avoid allocating
the error in the first place.

Spotted by Christian Hergert.

Signed-off-by: Philip Withnall <pwithnall@gnome.org>

Helps: #3465
This commit is contained in:
Philip Withnall 2024-09-05 12:09:21 +01:00
parent 77ba62c832
commit 87af31604b
No known key found for this signature in database
GPG Key ID: DCDF5885B1F3ED73

View File

@ -919,6 +919,9 @@ g_resource_lookup_data (GResource *resource,
* *
* @lookup_flags controls the behaviour of the lookup. * @lookup_flags controls the behaviour of the lookup.
* *
* The only error this can return is %G_RESOURCE_ERROR_NOT_FOUND, if @path was
* not found in @resource.
*
* Returns: %TRUE if the file was found. %FALSE if there were errors * Returns: %TRUE if the file was found. %FALSE if there were errors
* *
* Since: 2.32 * Since: 2.32
@ -1314,7 +1317,6 @@ g_resources_get_info (const gchar *path,
{ {
gboolean res = FALSE; gboolean res = FALSE;
GList *l; GList *l;
gboolean r_res;
InfoData info; InfoData info;
if (g_resource_find_overlay (path, get_overlay_info, &info)) if (g_resource_find_overlay (path, get_overlay_info, &info))
@ -1334,19 +1336,10 @@ g_resources_get_info (const gchar *path,
for (l = registered_resources; l != NULL; l = l->next) for (l = registered_resources; l != NULL; l = l->next)
{ {
GResource *r = l->data; GResource *r = l->data;
GError *my_error = NULL;
r_res = g_resource_get_info (r, path, lookup_flags, size, flags, &my_error); if (g_resource_get_info (r, path, lookup_flags, size, flags, NULL))
if (!r_res &&
g_error_matches (my_error, G_RESOURCE_ERROR, G_RESOURCE_ERROR_NOT_FOUND))
{ {
g_clear_error (&my_error); res = TRUE;
}
else
{
if (!r_res)
g_propagate_error (error, my_error);
res = r_res;
break; break;
} }
} }