lib: small update for strlen, strnlen, use less cpu instructions
Subsystems (2)
PATCH 1/1 lib: small update for strlen, strnlen, use less cpu instructions
Very small update to strlen and strnlen that now use less cpu instructions by using a counter to avoid the memory addresses substraction to find the length of the string.
Signed-off-by Orestes Leal Rodriguez <[email protected]>
---
lib/string.c +13 -8
@@ -17,6 +17,10 @@* * Sat Feb 09 2002, Jason Thomas <[email protected]>, * Matthew Hawkins <[email protected]> * - Kissed strtok() goodbye +* +* * Tuesday June 16 2015, Orestes Leal Rodriguez <[email protected]> +* - strlen, strnlen: by using a single counter we use less cpu instructions +* by avoiding substracting the memory addresses before return */ #include <linux/types.h>
@@ -401,11 +405,11 @@ EXPORT_SYMBOL(strim);*/ size_t strlen (const char *s) { -const char *sc; +size_t sz =0 ; -for (sc = s; *sc !='\0' ; ++sc) -/* nothing */ ; -return sc - s; +for (; *s++ !='\0' ; sz++) +/* empty */ ; +return sz; }EXPORT_SYMBOL (strlen);#endif
@@ -418,12 +422,13 @@ EXPORT_SYMBOL(strlen);*/ size_t strnlen (const char *s,size_t count) { -const char *sc; +size_t sz =0 ; -for (sc = s; count-- && *sc !='\0' ; ++sc) -/* nothing */ ; -return sc - s; +for (; count-- && *s++ !='\0' ; sz++) +/* empty */ ; +return sz; } +EXPORT_SYMBOL (strnlen);#endif