X-Git-Url: https://wimlib.net/git/?p=wimlib;a=blobdiff_plain;f=include%2Fwimlib%2Fblob_table.h;h=0999660026ebde5c297d2a04684ec922f1683657;hp=ee1cd0faa8f4cb5c544c02d1efb507a56ec21647;hb=a4123fea556d6c362318212127e25846981ea190;hpb=1e70063e885540667e1873787e6b21f5c6704ac4 diff --git a/include/wimlib/blob_table.h b/include/wimlib/blob_table.h index ee1cd0fa..09996600 100644 --- a/include/wimlib/blob_table.h +++ b/include/wimlib/blob_table.h @@ -152,13 +152,6 @@ struct blob_descriptor { u16 unique_size : 1; u16 will_be_in_output_wim : 1; - /* Set to 1 if this blob represents a metadata resource that has been - * changed. In such cases, the hash cannot be used to verify the data - * if the metadata resource is read again. (This could be avoided if we - * used separate fields for input/output checksum, but most blobs - * wouldn't need this.) */ - u16 dont_check_metadata_hash : 1; - u16 may_send_done_with_file : 1; /* Only used by wimlib_export_image() */ @@ -313,6 +306,9 @@ extern void blob_decrement_num_opened_fds(struct blob_descriptor *blob); #endif +extern void +blob_release_location(struct blob_descriptor *blob); + extern void free_blob_descriptor(struct blob_descriptor *blob); @@ -341,8 +337,7 @@ blob_to_wimlib_resource_entry(const struct blob_descriptor *blob, struct wimlib_resource_entry *wentry); extern int -sort_blob_list(struct list_head *blob_list, - size_t list_head_offset, +sort_blob_list(struct list_head *blob_list, size_t list_head_offset, int (*compar)(const void *, const void*)); extern int @@ -392,6 +387,17 @@ blob_set_is_located_in_attached_buffer(struct blob_descriptor *blob, blob->size = size; } +static inline bool +blob_is_in_file(const struct blob_descriptor *blob) +{ + return blob->blob_location == BLOB_IN_FILE_ON_DISK +#ifdef __WIN32__ + || blob->blob_location == BLOB_IN_WINNT_FILE_ON_DISK + || blob->blob_location == BLOB_WIN32_ENCRYPTED +#endif + ; +} + extern struct blob_descriptor * new_blob_from_data_buffer(const void *buffer, size_t size, struct blob_table *blob_table); @@ -402,8 +408,7 @@ after_blob_hashed(struct blob_descriptor *blob, struct blob_table *blob_table); extern int -hash_unhashed_blob(struct blob_descriptor *blob, - struct blob_table *blob_table, +hash_unhashed_blob(struct blob_descriptor *blob, struct blob_table *blob_table, struct blob_descriptor **blob_ret); extern struct blob_descriptor **