This variant is in my tests about 7-10% faster, and also think it is perhaps even clearer code than before.
Signed-off-by: Rickard Strandqvist <rickard_strandqv...@spectrumdigital.se> --- lib/string.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/lib/string.c b/lib/string.c index f3c6ff5..6961229 100644 --- a/lib/string.c +++ b/lib/string.c @@ -123,12 +123,12 @@ char *strncpy(char *dest, const char *src, size_t count) { char *tmp = dest; - while (count) { - if ((*tmp = *src) != 0) - src++; - tmp++; - count--; - } + while (count && (*tmp++ = *src++)) + --count; + + while (count--) + *tmp++ = '\0'; + return dest; } EXPORT_SYMBOL(strncpy); -- 1.7.10.4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/