Merge pull request #2836 from smcv/file-info-size

Cope with GLib 2.76 being more strict about GFileInfo standard::size
This commit is contained in:
Colin Walters 2023-03-17 11:28:18 -04:00 committed by GitHub
commit 233cc8ce85
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 3 deletions

View File

@ -355,7 +355,7 @@ GBytes *
_ostree_zlib_file_header_new (GFileInfo *file_info,
GVariant *xattrs)
{
guint64 size = g_file_info_get_size (file_info);
guint64 size = 0;
guint32 uid = g_file_info_get_attribute_uint32 (file_info, "unix::uid");
guint32 gid = g_file_info_get_attribute_uint32 (file_info, "unix::gid");
guint32 mode = g_file_info_get_attribute_uint32 (file_info, "unix::mode");
@ -366,6 +366,9 @@ _ostree_zlib_file_header_new (GFileInfo *file_info,
else
symlink_target = "";
if (g_file_info_has_attribute (file_info, "standard::size"))
size = g_file_info_get_size (file_info);
g_autoptr(GVariant) tmp_xattrs = NULL;
if (xattrs == NULL)
tmp_xattrs = g_variant_ref_sink (g_variant_new_array (G_VARIANT_TYPE ("(ayay)"), NULL, 0));
@ -550,7 +553,9 @@ ostree_raw_file_to_content_stream (GInputStream *input,
g_autoptr(GBytes) file_header = _ostree_file_header_new (file_info, xattrs);
*out_input = header_and_input_to_stream (file_header, input);
if (out_length)
*out_length = g_bytes_get_size (file_header) + g_file_info_get_size (file_info);
*out_length = g_bytes_get_size (file_header);
if (out_length && g_file_info_has_attribute (file_info, "standard::size"))
*out_length += g_file_info_get_size (file_info);
return TRUE;
}

View File

@ -1211,7 +1211,8 @@ write_content_object (OstreeRepo *self,
/* Update statistics */
g_mutex_lock (&self->txn_lock);
self->txn.stats.content_objects_written++;
self->txn.stats.content_bytes_written += g_file_info_get_size (file_info);
if (g_file_info_has_attribute (file_info, "standard::size"))
self->txn.stats.content_bytes_written += g_file_info_get_size (file_info);
self->txn.stats.content_objects_total++;
g_mutex_unlock (&self->txn_lock);