45 lines
1.9 KiB
Markdown
45 lines
1.9 KiB
Markdown
# Pre-12 Batch 09: compression header responsibility
|
|
|
|
Date: 2026-08-13
|
|
|
|
## Scope
|
|
|
|
- Removed the direct `internal.h` include from `decompressor.c` and the four
|
|
`decompressor_*.c` backend consumers that already include `compress.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.h` remains the sole owner of `z_erofs_decompress_req`,
|
|
`z_erofs_decompressor`, the LZ4 decompressor prototype, and the three
|
|
backend descriptor declarations.
|
|
- `internal.h` remains the sole public owner of `z_erofs_decompress` and
|
|
`z_erofs_parse_cfgs`; it does not include `compress.h`.
|
|
- The include graph remains acyclic: each affected translation unit includes
|
|
`compress.h`, and `compress.h` includes `internal.h`, which includes only
|
|
`erofs_fs.h` among 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.h` and `compress.h`.
|
|
- The source diff removes exactly one `#include "internal.h"` line from each
|
|
of five authorized files and changes no other token.
|
|
- `git diff --check` and `git diff --cached --check` were 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.
|