diff options
author | André Goddard Rosa <andre.goddard@gmail.com> | 2010-01-30 22:29:59 -0200 |
---|---|---|
committer | André Goddard Rosa <andre.goddard@gmail.com> | 2010-01-30 22:29:59 -0200 |
commit | aba3ee7d322f30735433e2e6ae98fa3d849a1c7e (patch) | |
tree | 6eac980a5bc405285906c6129252f082de8bae10 | |
parent | 30a419afc3cdb641e350c7cfde753877675958e0 (diff) | |
download | bionic-aba3ee7d322f30735433e2e6ae98fa3d849a1c7e.zip bionic-aba3ee7d322f30735433e2e6ae98fa3d849a1c7e.tar.gz bionic-aba3ee7d322f30735433e2e6ae98fa3d849a1c7e.tar.bz2 |
string: tidy up strndup()
It decreases code size:
text data bss dec hex filename
161 0 0 161 a1 strndup-BEFORE.o
153 0 0 153 99 strndup-AFTER.o
Signed-off-by: André Goddard Rosa <andre.goddard@gmail.com>
-rw-r--r-- | libc/string/strndup.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/libc/string/strndup.c b/libc/string/strndup.c index da9a55f..9dca79c 100644 --- a/libc/string/strndup.c +++ b/libc/string/strndup.c @@ -31,12 +31,14 @@ char* strndup(const char* s, size_t n) { size_t slen = (size_t)strlen(s); - int len = slen < n ? slen : n; - char* copy = malloc(len+1); + char* copy; + if (slen < n) + n = slen; + copy = malloc(n+1); if (copy) { - memcpy( copy, s, len ); - copy[len] = 0; + memcpy(copy, s, n); + copy[n] = 0; } return copy; } |