1.9 KiB
1.9 KiB
Pre-12 Batch 09: compression header responsibility
Date: 2026-08-13
Scope
- Removed the direct
internal.hinclude fromdecompressor.cand the fourdecompressor_*.cbackend consumers that already includecompress.h. - Made no declaration, definition, function, storage-duration, or public API changes.
Candidate source
Batch 04 created compress.h with a direct internal.h include and added
compress.h to these five translation units while retaining their direct
internal.h includes. Batch 06 then made LZMA, DEFLATE, and ZSTD backend
functions private and exposed only their descriptor objects through
compress.h. This left exactly five duplicate include edges attributable to
Batches 04/06.
Static proof
compress.hremains the sole owner ofz_erofs_decompress_req,z_erofs_decompressor, the LZ4 decompressor prototype, and the three backend descriptor declarations.internal.hremains the sole public owner ofz_erofs_decompressandz_erofs_parse_cfgs; it does not includecompress.h.- The include graph remains acyclic: each affected translation unit includes
compress.h, andcompress.hincludesinternal.h, which includes onlyerofs_fs.hamong project headers. - Each affected consumer therefore still sees the same complete request,
descriptor, mount, map, and superblock types through one guarded include
path. No backend prototype or descriptor declaration is duplicated between
internal.handcompress.h. - The source diff removes exactly one
#include "internal.h"line from each of five authorized files and changes no other token. git diff --checkandgit diff --cached --checkwere required for this batch.
Deferred validation
No build, QEMU, smoke, feature, or other dynamic validation was run under the
execution constraint. The required FreeBSD KLD WITH_ZSTDIO=0/1 matrix and
final Plain/LZ4/LZMA validation remain deferred.