[PATCH V7 14/14] common: Replace #ifdef and #if with if's

Devarsh Thakkar devarsht at ti.com
Mon Apr 17 07:39:50 CEST 2023


Hi Nikhil,

Thanks for the patch.

On 10/04/23 12:58, Nikhil M Jain wrote:
> Remove #ifdef in header file to avoid multiple definitions while

multiple definitions doesnt seem to be right phrase as that will give
compilation error anyway.
> compilation. To improve code readability use if() rather than if's and
> '#ifdef's'.

Avoid using preprocessor compilation directives and instead use simple logical
expressions for better readability since compiler will anyway optimize
out the respective code block if condition is not satisfied.

> 
> Signed-off-by: Nikhil M Jain <n-jain1 at ti.com>
> ---
> V7(patch introduced):
> - Replace #ifdef and #if with if's.
> 
>  common/bmp.c     | 12 +++---------
>  common/splash.c  | 12 ++++++------
>  include/splash.h | 12 ------------
>  3 files changed, 9 insertions(+), 27 deletions(-)
> 
> diff --git a/common/bmp.c b/common/bmp.c
> index 51766b3c21..62b2d07d23 100644
> --- a/common/bmp.c
> +++ b/common/bmp.c
> @@ -33,7 +33,7 @@
>   * Returns NULL if decompression failed, or if the decompressed data
>   * didn't contain a valid BMP signature.

or decompression is not enabled in Kconfig.
>   */
> -#if CONFIG_IS_ENABLED(VIDEO_BMP_GZIP)
> +
nitpick, blank line.
>  struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
>  			     void **alloc_addr)
>  {
> @@ -41,6 +41,8 @@ struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
>  	unsigned long len;
>  	struct bmp_image *bmp;
>  
> +	if (!CONFIG_IS_ENABLED(VIDEO_BMP_GZIP))
> +		return NULL;
>  	/*
>  	 * Decompress bmp image
>  	 */
> @@ -77,14 +79,6 @@ struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
>  	*alloc_addr = dst;
>  	return bmp;
>  }
> -#else
> -struct bmp_image *gunzip_bmp(unsigned long addr, unsigned long *lenp,
> -			     void **alloc_addr)
> -{
> -	return NULL;
> -}
> -#endif
> -
>  
>  #ifdef CONFIG_NEEDS_MANUAL_RELOC

Don't you want to remove this too and switch to if ?
>  void bmp_reloc(void) {
> diff --git a/common/splash.c b/common/splash.c
> index a4e68b7042..4c38a155d0 100644
> --- a/common/splash.c
> +++ b/common/splash.c
> @@ -79,7 +79,7 @@ static int splash_video_logo_load(void)
>  	}
>  
>  	memcpy((void *)bmp_load_addr, bmp_logo_bitmap,
> -	       ARRAY_SIZE(bmp_logo_bitmap));
> +		ARRAY_SIZE(bmp_logo_bitmap));

Is this intended? Does checkpatch work fine with that?
>  
>  	return 0;
>  }
> @@ -96,11 +96,12 @@ __weak int splash_screen_prepare(void)
>  	return splash_video_logo_load();
>  }
>  
> -#if CONFIG_IS_ENABLED(SPLASH_SCREEN_ALIGN)
>  void splash_get_pos(int *x, int *y)
>  {
>  	char *s = env_get("splashpos");
>  
> +	if (!CONFIG_IS_ENABLED(SPLASH_SCREEN_ALIGN))
> +		return;
>  	if (!s)
>  		return;

You can combine above both in a single statement using ||
>  
> @@ -117,7 +118,6 @@ void splash_get_pos(int *x, int *y)
>  			*y = simple_strtol(s + 1, NULL, 0);
>  	}
>  }
> -#endif /* CONFIG_SPLASH_SCREEN_ALIGN */
>  
>  #if CONFIG_IS_ENABLED(VIDEO) && !CONFIG_IS_ENABLED(HIDE_LOGO_VERSION)
>  

Don't you intend to remove above too and switch to if for all #ifdefs ?
> @@ -159,13 +159,14 @@ void splash_display_banner(void)
>   * Common function to show a splash image if env("splashimage") is set.
>   * For additional details please refer to doc/README.splashprepare.
>   */
> -#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && CONFIG_IS_ENABLED(BMP)
> +
>  int splash_display(void)
>  {
>  	ulong addr;
>  	char *s;
>  	int x = 0, y = 0, ret;
> -
> +	if (!(CONFIG_IS_ENABLED(SPLASH_SCREEN) && CONFIG_IS_ENABLED(BMP)))
> +		return -ENOSYS;

I think BMP check should come under bmp specific code latter in the function.

Regards
Devarsh
>  	s = env_get("splashimage");
>  	if (!s)
>  		return -EINVAL;
> @@ -189,4 +190,3 @@ int splash_display(void)
>  end:
>  	return ret;
>  }
> -#endif
> diff --git a/include/splash.h b/include/splash.h
> index aa0c14024e..8f15adf9dd 100644
> --- a/include/splash.h
> +++ b/include/splash.h
> @@ -61,21 +61,9 @@ static inline int splash_source_load(struct splash_location *locations,
>  
>  int splash_screen_prepare(void);
>  
> -#if CONFIG_IS_ENABLED(SPLASH_SCREEN_ALIGN)
>  void splash_get_pos(int *x, int *y);
> -#else
> -static inline void splash_get_pos(int *x, int *y) { }
> -#endif
>  
> -#if CONFIG_IS_ENABLED(SPLASH_SCREEN) && CONFIG_IS_ENABLED(BMP)
>  int splash_display(void);
> -#else
> -static inline int splash_display(void)
> -{
> -	return -ENOSYS;
> -}
> -#endif
> -
>  #define BMP_ALIGN_CENTER	0x7FFF
>  
>  #endif
> \ No newline at end of file


More information about the U-Boot mailing list