core: Avoid reading regular file data twice when archiving

This commit is contained in:
Colin Walters committed 2011-12-02 14:23:01 -05:00
1 parent d1950da1a0
commit 0d4df5b3fe
2 files changed
+90 -9

No files matched your search

+13 -4
View File
@@ -650,10 +650,16 @@ ostree_pack_file_for_input (GOutputStream *output,
g_assert_not_reached ();
ret = TRUE;
if (out_checksum)
{
*out_checksum = ret_checksum;
ret_checksum = NULL;
}
out:
if (pack_builder_initialized)
g_variant_builder_clear (&pack_builder);
ot_clear_gvariant (&pack_variant);
ot_clear_checksum (&ret_checksum);
return ret;
}
@@ -911,10 +917,13 @@ ostree_create_file_from_input (GFile *dest_file,
if (!out)
goto out;
if (!ot_gio_splice_and_checksum ((GOutputStream*)out, input,
out_checksum ? &ret_checksum : NULL,
cancellable, error))
goto out;
if (input)
{
if (!ot_gio_splice_and_checksum ((GOutputStream*)out, input,
out_checksum ? &ret_checksum : NULL,
cancellable, error))
goto out;
}
if (!g_output_stream_close ((GOutputStream*)out, NULL, error))
goto out;