GWinHttpFile: Set display-name and type at the start of the query_info() function

Those attributes do not need the HTTP(S) request data, so just set them
right away.
This commit is contained in:
Luca Bacci 2024-02-20 11:14:04 +01:00
parent f1758b10db
commit c515f793e5

View File

@ -477,6 +477,25 @@ g_winhttp_file_query_info (GFile *file,
SYSTEMTIME last_modified;
DWORD last_modified_len;
matcher = g_file_attribute_matcher_new (attributes);
info = g_file_info_new ();
g_file_info_set_attribute_mask (info, matcher);
basename = g_winhttp_file_get_basename (file);
g_file_info_set_name (info, basename);
g_free (basename);
if (_g_file_attribute_matcher_matches_id (matcher,
G_FILE_ATTRIBUTE_ID_STANDARD_DISPLAY_NAME))
{
char *display_name = g_winhttp_file_get_display_name (file);
g_file_info_set_display_name (info, display_name);
g_free (display_name);
}
if (_g_file_attribute_matcher_matches_id (matcher, G_FILE_ATTRIBUTE_ID_STANDARD_TYPE))
g_file_info_set_file_type (info, G_FILE_TYPE_REGULAR);
connection = G_WINHTTP_VFS_GET_CLASS (winhttp_file->vfs)->funcs->pWinHttpConnect
(G_WINHTTP_VFS (winhttp_file->vfs)->session,
winhttp_file->url.lpszHostName,
@ -521,25 +540,6 @@ g_winhttp_file_query_info (GFile *file,
if (!_g_winhttp_response (winhttp_file->vfs, request, error, "HEAD request"))
return NULL;
matcher = g_file_attribute_matcher_new (attributes);
info = g_file_info_new ();
g_file_info_set_attribute_mask (info, matcher);
basename = g_winhttp_file_get_basename (file);
g_file_info_set_name (info, basename);
g_free (basename);
if (_g_file_attribute_matcher_matches_id (matcher,
G_FILE_ATTRIBUTE_ID_STANDARD_DISPLAY_NAME))
{
char *display_name = g_winhttp_file_get_display_name (file);
g_file_info_set_display_name (info, display_name);
g_free (display_name);
}
if (_g_file_attribute_matcher_matches_id (matcher, G_FILE_ATTRIBUTE_ID_STANDARD_TYPE))
g_file_info_set_file_type (info, G_FILE_TYPE_REGULAR);
content_length = NULL;
if (_g_winhttp_query_header (winhttp_file->vfs,
request,