summaryrefslogtreecommitdiffstats
path: root/util.c
diff options
context:
space:
mode:
authorDan McGee <dpmcgee@gmail.com>2008-09-19 12:10:31 -0500
committerDan McGee <dan@archlinux.org>2008-10-05 19:49:39 -0500
commit2d87c986c71f1f52c74880b839c0e87cadc6204a (patch)
tree96e5b16b20fccf9a7dac8464b1f5d911d7d2fa64 /util.c
parent6f74edf73ff080cd48b1f44d52ebbf06864a53e9 (diff)
downloadonkyocontrol-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.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/util.c b/util.c
index b422bde..58a4bab 100644
--- a/util.c
+++ b/util.c
@@ -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);
}