lib/core: (refactor) Drop wrapper and unneeded args for variant writing
authorColin Walters <walters@verbum.org>
Sat, 7 Oct 2017 13:36:51 +0000 (09:36 -0400)
committerAtomic Bot <atomic-devel@projectatomic.io>
Wed, 11 Oct 2017 19:04:46 +0000 (19:04 +0000)
Nothing was using the `bytes_written` data (we always discard partially written
tmpfiles), so simplify everything by dropping it. Further, we always passed an
offset of `0`, so drop that argument too. (I believe that this was previously
used by the "pack files" code that we deleted long ago)

Second, we had an unnecessary internal wrapper for this function; drop that too.

Closes: #1257
Approved by: jlebon

src/libostree/ostree-core-private.h
src/libostree/ostree-core.c
src/libostree/ostree-repo-commit.c
src/libostree/ostree-repo-static-delta-processing.c

index 70b12b68c7db66d124ee1ff71db3d270e12cd12b..f964b422a8d3538760f69878f46de87c7e9860a8 100644 (file)
@@ -76,8 +76,6 @@ GVariant *_ostree_zlib_file_header_new (GFileInfo         *file_info,
 
 gboolean _ostree_write_variant_with_size (GOutputStream      *output,
                                           GVariant           *variant,
-                                          guint64             alignment_offset,
-                                          gsize              *out_bytes_written,
                                           OtChecksum         *checksum,
                                           GCancellable       *cancellable,
                                           GError            **error);
index 2fafe99d70954e0e786dca1ef691ea245d0a6470..6d7ab0fc4a6abaad45a87d48bcdf21254a7f61f0 100644 (file)
@@ -387,7 +387,6 @@ write_padding (GOutputStream    *output,
  * _ostree_write_variant_with_size:
  * @output: Stream
  * @variant: A variant
- * @alignment_offset: Used to determine whether or not we should write padding bytes
  * @out_bytes_written: (out): Number of bytes written
  * @checksum: (allow-none): If provided, update with written data
  * @cancellable: Cancellable
@@ -401,73 +400,29 @@ write_padding (GOutputStream    *output,
 gboolean
 _ostree_write_variant_with_size (GOutputStream      *output,
                                  GVariant           *variant,
-                                 guint64             alignment_offset,
-                                 gsize              *out_bytes_written,
                                  OtChecksum         *checksum,
                                  GCancellable       *cancellable,
                                  GError            **error)
 {
-  guint64 variant_size;
-  guint32 variant_size_u32_be;
-  gsize bytes_written;
-  gsize ret_bytes_written = 0;
-
   /* Write variant size */
-  variant_size = g_variant_get_size (variant);
+  const guint64 variant_size = g_variant_get_size (variant);
   g_assert (variant_size < G_MAXUINT32);
-  variant_size_u32_be = GUINT32_TO_BE((guint32) variant_size);
+  const guint32 variant_size_u32_be = GUINT32_TO_BE((guint32) variant_size);
 
-  bytes_written = 0;
-  if (!ot_gio_write_update_checksum (output, &variant_size_u32_be, 4,
-                                     &bytes_written, checksum,
-                                     cancellable, error))
+  if (!ot_gio_write_update_checksum (output, &variant_size_u32_be, sizeof (variant_size_u32_be),
+                                     NULL, checksum, cancellable, error))
     return FALSE;
-  ret_bytes_written += bytes_written;
-  alignment_offset += bytes_written;
+  const gsize alignment_offset = sizeof(variant_size_u32_be);
 
-  bytes_written = 0;
   /* Pad to offset of 8, write variant */
-  if (!write_padding (output, 8, alignment_offset, &bytes_written, checksum,
+  if (!write_padding (output, 8, alignment_offset, NULL, checksum,
                       cancellable, error))
     return FALSE;
-  ret_bytes_written += bytes_written;
 
-  bytes_written = 0;
   if (!ot_gio_write_update_checksum (output, g_variant_get_data (variant),
-                                     variant_size, &bytes_written, checksum,
+                                     variant_size, NULL, checksum,
                                      cancellable, error))
     return FALSE;
-  ret_bytes_written += bytes_written;
-
-  if (out_bytes_written)
-    *out_bytes_written = ret_bytes_written;
-  return TRUE;
-}
-
-/*
- * write_file_header_update_checksum:
- * @out: Stream
- * @variant: A variant, should be a file header
- * @checksum: (allow-none): If provided, update with written data
- * @cancellable: Cancellable
- * @error: Error
- *
- * Write a file header variant to the provided @out stream, optionally
- * updating @checksum.
- */
-static gboolean
-write_file_header_update_checksum (GOutputStream         *out,
-                                   GVariant              *header,
-                                   OtChecksum            *checksum,
-                                   GCancellable          *cancellable,
-                                   GError               **error)
-{
-  gsize bytes_written;
-
-  if (!_ostree_write_variant_with_size (out, header, 0, &bytes_written, checksum,
-                                        cancellable, error))
-    return FALSE;
-
   return TRUE;
 }
 
@@ -499,7 +454,7 @@ header_and_input_to_stream (GVariant           *file_header,
 
   header_out_stream = g_memory_output_stream_new (NULL, 0, g_realloc, g_free);
 
-  if (!_ostree_write_variant_with_size (header_out_stream, file_header, 0, NULL, NULL,
+  if (!_ostree_write_variant_with_size (header_out_stream, file_header, NULL,
                                         cancellable, error))
     return FALSE;
 
@@ -875,12 +830,10 @@ ostree_checksum_file_from_input (GFileInfo        *file_info,
     }
   else
     {
-      g_autoptr(GVariant) file_header = NULL;
-
-      file_header = _ostree_file_header_new (file_info, xattrs);
+      g_autoptr(GVariant) file_header = _ostree_file_header_new (file_info, xattrs);
 
-      if (!write_file_header_update_checksum (NULL, file_header, &checksum,
-                                              cancellable, error))
+      if (!_ostree_write_variant_with_size (NULL, file_header, &checksum,
+                                            cancellable, error))
         return FALSE;
 
       if (g_file_info_get_file_type (file_info) == G_FILE_TYPE_REGULAR)
index 377adc754d5cfac2a65c1b26c9feed63cdc85640..a8d2aa1b03687c844d175c2a9f60c659adc4a7a4 100644 (file)
@@ -648,7 +648,7 @@ write_content_object (OstreeRepo         *self,
 
       file_meta = _ostree_zlib_file_header_new (file_info, xattrs);
 
-      if (!_ostree_write_variant_with_size (temp_out, file_meta, 0, NULL, NULL,
+      if (!_ostree_write_variant_with_size (temp_out, file_meta, NULL,
                                             cancellable, error))
         return FALSE;
 
index fca0f216105530afe8afd762e22bc53cfd461982..092b6ea764adbd2d8d25b32cf0c3e9b2cf40661c 100644 (file)
@@ -505,8 +505,7 @@ handle_untrusted_content_checksum (OstreeRepo                 *repo,
 
   ot_checksum_init (&state->content_checksum);
 
-  gsize bytes_written;
-  if (!_ostree_write_variant_with_size (NULL, header, 0, &bytes_written, &state->content_checksum,
+  if (!_ostree_write_variant_with_size (NULL, header, &state->content_checksum,
                                         cancellable, error))
     return FALSE;