summaryrefslogtreecommitdiff
path: root/strings
diff options
context:
space:
mode:
authorDoug MacEachern <dougm@apache.org>2001-06-19 20:40:28 +0000
committerDoug MacEachern <dougm@apache.org>2001-06-19 20:40:28 +0000
commit9d58735d112844787edeb6f42b5d25f47c2f10a6 (patch)
treecfda38e872170a8d976380bd024d1be274a7786f /strings
parent64b408c31f86b02565523cd4c1b15f49bd76593f (diff)
downloadapr-9d58735d112844787edeb6f42b5d25f47c2f10a6.tar.gz
apr_pstrcat() optimizations:
reuse calculated strlen() length use memcpy instead of strcpy PR: Obtained from: Submitted by: dougm Reviewed by: jeff trawick, ryan bloom, bill stoddard git-svn-id: https://svn.apache.org/repos/asf/apr/apr/trunk@61783 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'strings')
-rw-r--r--strings/apr_strings.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/strings/apr_strings.c b/strings/apr_strings.c
index ab52478c5..7dbbff14d 100644
--- a/strings/apr_strings.c
+++ b/strings/apr_strings.c
@@ -130,15 +130,16 @@ APR_DECLARE_NONSTD(char *) apr_pstrcat(apr_pool_t *a, ...)
res = (char *) apr_palloc(a, len + 1);
cp = res;
- *cp = '\0';
+ *(cp + len) = '\0';
/* Pass two --- copy the argument strings into the result space */
va_start(adummy, a);
while ((argp = va_arg(adummy, char *)) != NULL) {
- strcpy(cp, argp);
- cp += strlen(argp);
+ len = strlen(argp);
+ memcpy(cp, argp, len);
+ cp += len;
}
va_end(adummy);