[PATCH] lib/decompress: Use designated initializers for struct compress_format

Thorsten Blum posted 1 patch 3 weeks ago
lib/decompress.c | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
[PATCH] lib/decompress: Use designated initializers for struct compress_format
Posted by Thorsten Blum 3 weeks ago
Switch 'compressed_formats[]' to the more modern and flexible designated
initializers. This improves readability and allows struct fields to be
reordered. Also use a more concise sentinel marker.

Remove the curly braces around the for loop while we're at it.

No functional changes intended.

Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>
---
 lib/decompress.c | 21 ++++++++++-----------
 1 file changed, 10 insertions(+), 11 deletions(-)

diff --git a/lib/decompress.c b/lib/decompress.c
index ab3fc90ffc64..7785471586c6 100644
--- a/lib/decompress.c
+++ b/lib/decompress.c
@@ -49,15 +49,15 @@ struct compress_format {
 };
 
 static const struct compress_format compressed_formats[] __initconst = {
-	{ {0x1f, 0x8b}, "gzip", gunzip },
-	{ {0x1f, 0x9e}, "gzip", gunzip },
-	{ {0x42, 0x5a}, "bzip2", bunzip2 },
-	{ {0x5d, 0x00}, "lzma", unlzma },
-	{ {0xfd, 0x37}, "xz", unxz },
-	{ {0x89, 0x4c}, "lzo", unlzo },
-	{ {0x02, 0x21}, "lz4", unlz4 },
-	{ {0x28, 0xb5}, "zstd", unzstd },
-	{ {0, 0}, NULL, NULL }
+	{ .magic = {0x1f, 0x8b}, .name = "gzip", .decompressor = gunzip },
+	{ .magic = {0x1f, 0x9e}, .name = "gzip", .decompressor = gunzip },
+	{ .magic = {0x42, 0x5a}, .name = "bzip2", .decompressor = bunzip2 },
+	{ .magic = {0x5d, 0x00}, .name = "lzma", .decompressor = unlzma },
+	{ .magic = {0xfd, 0x37}, .name = "xz", .decompressor = unxz },
+	{ .magic = {0x89, 0x4c}, .name = "lzo", .decompressor = unlzo },
+	{ .magic = {0x02, 0x21}, .name = "lz4", .decompressor = unlz4 },
+	{ .magic = {0x28, 0xb5}, .name = "zstd", .decompressor = unzstd },
+	{ /* sentinel */ }
 };
 
 decompress_fn __init decompress_method(const unsigned char *inbuf, long len,
@@ -73,11 +73,10 @@ decompress_fn __init decompress_method(const unsigned char *inbuf, long len,
 
 	pr_debug("Compressed data magic: %#.2x %#.2x\n", inbuf[0], inbuf[1]);
 
-	for (cf = compressed_formats; cf->name; cf++) {
+	for (cf = compressed_formats; cf->name; cf++)
 		if (!memcmp(inbuf, cf->magic, 2))
 			break;
 
-	}
 	if (name)
 		*name = cf->name;
 	return cf->decompressor;
-- 
2.51.0
Re: [PATCH] lib/decompress: Use designated initializers for struct compress_format
Posted by Kuan-Wei Chiu 3 weeks ago
On Thu, Sep 11, 2025 at 01:23:51AM +0200, Thorsten Blum wrote:
> Switch 'compressed_formats[]' to the more modern and flexible designated
> initializers. This improves readability and allows struct fields to be
> reordered. Also use a more concise sentinel marker.
> 
> Remove the curly braces around the for loop while we're at it.
> 
> No functional changes intended.
> 
> Signed-off-by: Thorsten Blum <thorsten.blum@linux.dev>

Reviewed-by: Kuan-Wei Chiu <visitorckw@gmail.com>

Regards,
Kuan-Wei

> ---
>  lib/decompress.c | 21 ++++++++++-----------
>  1 file changed, 10 insertions(+), 11 deletions(-)
> 
> diff --git a/lib/decompress.c b/lib/decompress.c
> index ab3fc90ffc64..7785471586c6 100644
> --- a/lib/decompress.c
> +++ b/lib/decompress.c
> @@ -49,15 +49,15 @@ struct compress_format {
>  };
>  
>  static const struct compress_format compressed_formats[] __initconst = {
> -	{ {0x1f, 0x8b}, "gzip", gunzip },
> -	{ {0x1f, 0x9e}, "gzip", gunzip },
> -	{ {0x42, 0x5a}, "bzip2", bunzip2 },
> -	{ {0x5d, 0x00}, "lzma", unlzma },
> -	{ {0xfd, 0x37}, "xz", unxz },
> -	{ {0x89, 0x4c}, "lzo", unlzo },
> -	{ {0x02, 0x21}, "lz4", unlz4 },
> -	{ {0x28, 0xb5}, "zstd", unzstd },
> -	{ {0, 0}, NULL, NULL }
> +	{ .magic = {0x1f, 0x8b}, .name = "gzip", .decompressor = gunzip },
> +	{ .magic = {0x1f, 0x9e}, .name = "gzip", .decompressor = gunzip },
> +	{ .magic = {0x42, 0x5a}, .name = "bzip2", .decompressor = bunzip2 },
> +	{ .magic = {0x5d, 0x00}, .name = "lzma", .decompressor = unlzma },
> +	{ .magic = {0xfd, 0x37}, .name = "xz", .decompressor = unxz },
> +	{ .magic = {0x89, 0x4c}, .name = "lzo", .decompressor = unlzo },
> +	{ .magic = {0x02, 0x21}, .name = "lz4", .decompressor = unlz4 },
> +	{ .magic = {0x28, 0xb5}, .name = "zstd", .decompressor = unzstd },
> +	{ /* sentinel */ }
>  };
>  
>  decompress_fn __init decompress_method(const unsigned char *inbuf, long len,
> @@ -73,11 +73,10 @@ decompress_fn __init decompress_method(const unsigned char *inbuf, long len,
>  
>  	pr_debug("Compressed data magic: %#.2x %#.2x\n", inbuf[0], inbuf[1]);
>  
> -	for (cf = compressed_formats; cf->name; cf++) {
> +	for (cf = compressed_formats; cf->name; cf++)
>  		if (!memcmp(inbuf, cf->magic, 2))
>  			break;
>  
> -	}
>  	if (name)
>  		*name = cf->name;
>  	return cf->decompressor;
> -- 
> 2.51.0
>