From: Eric Biggers Date: Thu, 5 Jun 2014 03:19:18 +0000 (-0500) Subject: Fix creating large solid blocks X-Git-Tag: v1.7.0~64 X-Git-Url: https://wimlib.net/git/?p=wimlib;a=commitdiff_plain;h=b9320c921af8d8d2ea3ea80c576ca1e4037af049 Fix creating large solid blocks Dumb bug that only appeared when at least 4 GiB of data was being archived...! --- diff --git a/NEWS b/NEWS index 89157ebc..b703f8a6 100644 --- a/NEWS +++ b/NEWS @@ -1,7 +1,10 @@ Only the most important changes more recent than version 0.6 are noted here. Version 1.7.0-BETA: - Improved compatibility with version 3584 WIM / ESD files. + Improved compatibility with version 3584 WIM / ESD files: + - Add support for reading and writing multiple solid blocks per + archive, which WIMGAPI/DISM can create when appending an image. + - Correctly create solid blocks larger than 4 GiB. Performance improvements, including for extraction. diff --git a/src/write.c b/src/write.c index 52178381..aa3585a7 100644 --- a/src/write.c +++ b/src/write.c @@ -451,7 +451,7 @@ begin_chunk_table(struct write_streams_ctx *ctx, u64 res_expected_size) reserve_size = expected_num_chunk_entries * get_chunk_entry_size(res_expected_size, 0 != (ctx->write_resource_flags & - WIM_RESHDR_FLAG_PACKED_STREAMS)); + WRITE_RESOURCE_FLAG_PACK_STREAMS)); if (ctx->write_resource_flags & WRITE_RESOURCE_FLAG_PACK_STREAMS) reserve_size += sizeof(struct alt_chunk_table_header_disk); memset(ctx->chunk_csizes, 0, reserve_size); @@ -499,7 +499,7 @@ end_chunk_table(struct write_streams_ctx *ctx, u64 res_actual_size, chunk_entry_size = get_chunk_entry_size(res_actual_size, 0 != (ctx->write_resource_flags & - WIM_RESHDR_FLAG_PACKED_STREAMS)); + WRITE_RESOURCE_FLAG_PACK_STREAMS)); typedef le64 __attribute__((may_alias)) aliased_le64_t; typedef le32 __attribute__((may_alias)) aliased_le32_t;