]> wimlib.net Git - wimlib/blobdiff - include/wimlib/blob_table.h
Save memory by avoiding padding after sha1_hash fields
[wimlib] / include / wimlib / blob_table.h
index 0ccccfbbbbb0f876e4172016d7e2fc60d864834e..ee1cd0faa8f4cb5c544c02d1efb507a56ec21647 100644 (file)
@@ -108,7 +108,7 @@ struct blob_descriptor {
                        struct wim_inode *back_inode;
                        u32 back_stream_id;
                };
-       };
+       } _packed_attribute; /* union is SHA1_HASH_SIZE bytes */
 
        /* Number of times this blob is referenced by file streams in WIM
         * images.  See blob_decrement_refcnt() for information about the
@@ -353,7 +353,7 @@ extern int
 cmp_blobs_by_sequential_order(const void *p1, const void *p2);
 
 static inline const struct blob_extraction_target *
-blob_extraction_targets(struct blob_descriptor *blob)
+blob_extraction_targets(const struct blob_descriptor *blob)
 {
        if (blob->out_refcnt <= ARRAY_LEN(blob->inline_blob_extraction_targets))
                return blob->inline_blob_extraction_targets;
@@ -376,18 +376,6 @@ blob_set_is_located_in_wim_resource(struct blob_descriptor *blob,
        blob->offset_in_res = offset_in_res;
 }
 
-/*
- * Declare that the specified blob is located in the specified non-solid WIM
- * resource.  In this case, the blob data is the entire uncompressed resource.
- */
-static inline void
-blob_set_is_located_in_nonsolid_wim_resource(struct blob_descriptor *blob,
-                                            struct wim_resource_descriptor *rdesc)
-{
-       blob_set_is_located_in_wim_resource(blob, rdesc, 0);
-       blob->size = rdesc->uncompressed_size;
-}
-
 static inline void
 blob_unset_is_located_in_wim_resource(struct blob_descriptor *blob)
 {