From 0121282d1aa449a037445a212e4fac53e2164893 Mon Sep 17 00:00:00 2001 From: Heinrich Schuchardt Date: Sat, 2 Apr 2022 11:46:58 +0200 Subject: [PATCH] lib: convert u16_strlen() into a macro The function u16_strlen() can be implemented as call to u16_strnlen(). Signed-off-by: Heinrich Schuchardt --- include/charset.h | 26 ++++++++++++++------------ lib/charset.c | 12 ------------ 2 files changed, 14 insertions(+), 24 deletions(-) diff --git a/include/charset.h b/include/charset.h index b93d023..38908e0 100644 --- a/include/charset.h +++ b/include/charset.h @@ -201,18 +201,6 @@ int u16_strncmp(const u16 *s1, const u16 *s2, size_t n); #define u16_strcmp(s1, s2) u16_strncmp((s1), (s2), SIZE_MAX) /** - * u16_strlen - count non-zero words - * - * This function matches wsclen() if the -fshort-wchar compiler flag is set. - * In the EFI context we explicitly need a function handling u16 strings. - * - * @in: null terminated u16 string - * Return: number of non-zero words. - * This is not the number of utf-16 letters! - */ -size_t u16_strlen(const void *in); - -/** * u16_strsize() - count size of u16 string in bytes including the null * character * @@ -237,6 +225,20 @@ size_t u16_strsize(const void *in); size_t u16_strnlen(const u16 *in, size_t count); /** + * u16_strlen - count non-zero words + * + * This function matches wsclen() if the -fshort-wchar compiler flag is set. + * In the EFI context we explicitly need a function handling u16 strings. + * + * @in: null terminated u16 string + * Return: number of non-zero words. + * This is not the number of utf-16 letters! + */ +size_t u16_strlen(const void *in); + +#define u16_strlen(in) u16_strnlen(in, SIZE_MAX) + +/** * u16_strcpy() - copy u16 string * * Copy u16 string pointed to by src, including terminating null word, to diff --git a/lib/charset.c b/lib/charset.c index f44c58d..91cbe87 100644 --- a/lib/charset.c +++ b/lib/charset.c @@ -375,18 +375,6 @@ int u16_strncmp(const u16 *s1, const u16 *s2, size_t n) return ret; } -size_t u16_strlen(const void *in) -{ - const char *pos = in; - size_t ret; - - for (; pos[0] || pos[1]; pos += 2) - ; - ret = pos - (char *)in; - ret >>= 1; - return ret; -} - size_t __efi_runtime u16_strnlen(const u16 *in, size_t count) { size_t i; -- 2.7.4