diff options
author | Dan McGee <dpmcgee@gmail.com> | 2008-09-19 12:10:31 -0500 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2008-10-05 19:49:39 -0500 |
commit | 2d87c986c71f1f52c74880b839c0e87cadc6204a (patch) | |
tree | 96e5b16b20fccf9a7dac8464b1f5d911d7d2fa64 /util.c | |
parent | 6f74edf73ff080cd48b1f44d52ebbf06864a53e9 (diff) | |
download | onkyocontrol-2d87c986c71f1f52c74880b839c0e87cadc6204a.tar.gz onkyocontrol-2d87c986c71f1f52c74880b839c0e87cadc6204a.zip |
Add an strdup optimization
memcpy is faster with larger blocks; strcpy is faster for smaller.
Signed-off-by: Dan McGee <dpmcgee@gmail.com>
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 9 |
1 files changed, 7 insertions, 2 deletions
@@ -57,8 +57,13 @@ char *strdup(const char *s) if(s) { const size_t len = strlen(s) + 1; ret = malloc(len * sizeof(char)); - if(ret) - memcpy(ret, s, len); + if(ret) { + if(len > 16) { + memcpy(ret, s, len); + } else { + strcpy(ret, s); + } + } } return(ret); } |