Can we remove inline keyword?
I don't think it is really needed in EDKII project.
Thank you Yao Jiewen
toggle quoted messageShow quoted text
-----Original Message----- From: Gerd Hoffmann <kraxel@...> Sent: Friday, April 8, 2022 7:16 PM To: devel@edk2.groups.io Cc: Oliver Steffen <osteffen@...>; Yao, Jiewen <jiewen.yao@...>; Jiang, Guomin <guomin.jiang@...>; Wang, Jian J <jian.j.wang@...>; Xiaoyu Lu <xiaoyux.lu@...>; Pawel Polawski <ppolawsk@...>; Gerd Hoffmann <kraxel@...> Subject: [PATCH v2 7/8] CryptoPkg/CrtLibSupport: fix strcpy
strcpy() returns a pointer to the destination string, AsciiStrCpyS() does not. So a simple #define does not work. Create a inline function instead.
Signed-off-by: Gerd Hoffmann <kraxel@...> --- CryptoPkg/Library/Include/CrtLibSupport.h | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/CryptoPkg/Library/Include/CrtLibSupport.h b/CryptoPkg/Library/Include/CrtLibSupport.h index 287d7f76bfb3..7c1bc7755b1c 100644 --- a/CryptoPkg/Library/Include/CrtLibSupport.h +++ b/CryptoPkg/Library/Include/CrtLibSupport.h @@ -395,6 +395,16 @@ inet_pton ( void * );
+static inline char * +strcpy ( + char *restrict strDest, + const char *strSource + ) +{ + AsciiStrCpyS (strDest, MAX_STRING_SIZE, strSource); + return strDest; +} + // // Macros that directly map functions to BaseLib, BaseMemoryLib, and DebugLib functions // @@ -404,7 +414,6 @@ inet_pton ( #define memcmp(buf1, buf2, count) (int)(CompareMem(buf1,buf2,(UINTN)(count))) #define memmove(dest, source, count) CopyMem(dest,source,(UINTN)(count)) #define strlen(str) (size_t)(AsciiStrnLenS(str,MAX_STRING_SIZE)) -#define strcpy(strDest, strSource) AsciiStrCpyS(strDest,MAX_STRING_SIZE,strSource) #define strncpy(strDest, strSource, count) AsciiStrnCpyS(strDest,MAX_STRING_SIZE,strSource,(UINTN)count) #define strcat(strDest, strSource) AsciiStrCatS(strDest,MAX_STRING_SIZE,strSource) #define strncmp(string1, string2, count) (int)(AsciiStrnCmp(string1,string2,(UINTN)(count))) -- 2.35.1
|