Elements of ZSTD_frameParameters structure are used as flag, so just declare them as char. ZSTD_frameParameters structure is used by ZSTD_parameters. Before: ====== sizeof(ZSTD_parameters) $1 = 40 After: ===== sizeof(ZSTD_parameters) $1 = 32 Signed-off-by: Maninder Singh <maninder1.s@xxxxxxxxxxx> Signed-off-by: Vaneet Narang <v.narang@xxxxxxxxxxx> --- include/linux/zstd.h | 6 +++--- lib/zstd/compress.c | 4 ++-- lib/zstd/decompress.c | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/include/linux/zstd.h b/include/linux/zstd.h index 5103efa..a1e3483 100644 --- a/include/linux/zstd.h +++ b/include/linux/zstd.h @@ -164,9 +164,9 @@ typedef struct { * The default value is all fields set to 0. */ typedef struct { - unsigned int contentSizeFlag; - unsigned int checksumFlag; - unsigned int noDictIDFlag; + unsigned char contentSizeFlag; + unsigned char checksumFlag; + unsigned char noDictIDFlag; } ZSTD_frameParameters; /** diff --git a/lib/zstd/compress.c b/lib/zstd/compress.c index 306e31b..7e0cea2 100644 --- a/lib/zstd/compress.c +++ b/lib/zstd/compress.c @@ -2435,9 +2435,9 @@ static size_t ZSTD_writeFrameHeader(void *dst, size_t dstCapacity, ZSTD_paramete { BYTE *const op = (BYTE *)dst; U32 const dictIDSizeCode = (dictID > 0) + (dictID >= 256) + (dictID >= 65536); /* 0-3 */ - U32 const checksumFlag = params->fParams.checksumFlag > 0; + BYTE const checksumFlag = params->fParams.checksumFlag > 0; U32 const windowSize = 1U << params->cParams.windowLog; - U32 const singleSegment = params->fParams.contentSizeFlag && (windowSize >= pledgedSrcSize); + BYTE const singleSegment = params->fParams.contentSizeFlag && (windowSize >= pledgedSrcSize); BYTE const windowLogByte = (BYTE)((params->cParams.windowLog - ZSTD_WINDOWLOG_ABSOLUTEMIN) << 3); U32 const fcsCode = params->fParams.contentSizeFlag ? (pledgedSrcSize >= 256) + (pledgedSrcSize >= 65536 + 256) + (pledgedSrcSize >= 0xFFFFFFFFU) : 0; /* 0-3 */ diff --git a/lib/zstd/decompress.c b/lib/zstd/decompress.c index 269ee9a..7828264 100644 --- a/lib/zstd/decompress.c +++ b/lib/zstd/decompress.c @@ -233,7 +233,7 @@ size_t ZSTD_getFrameParams(ZSTD_frameParams *fparamsPtr, const void *src, size_t BYTE const fhdByte = ip[4]; size_t pos = 5; U32 const dictIDSizeCode = fhdByte & 3; - U32 const checksumFlag = (fhdByte >> 2) & 1; + BYTE const checksumFlag = (fhdByte >> 2) & 1; U32 const singleSegment = (fhdByte >> 5) & 1; U32 const fcsID = fhdByte >> 6; U32 const windowSizeMax = 1U << ZSTD_WINDOWLOG_MAX; -- 2.7.4