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

Nikhil M Jain n-jain1 at ti.com
Tue Apr 18 10:48:02 CEST 2023



On 17/04/23 11:09, Devarsh Thakkar wrote:
> 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 ?

If this config is removed while compilation it will look for cmd/bmp 
which is not enabled at spl and compilation fails.

>>   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 ?
Removing these ifdefs' generates warning for implicit declaration.

>> @@ -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