summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2003-12-01 23:21:25 +0000
committerIlia Alshanetsky <iliaa@php.net>2003-12-01 23:21:25 +0000
commitda55f714a9bf3a8fa806329bb26c161b9b27fb96 (patch)
treea481bcda6274b0818531464ae55a9231677e3f0a
parent8d025a62fb7946c3a82798eb354f9b4090bb703c (diff)
downloadphp-git-da55f714a9bf3a8fa806329bb26c161b9b27fb96.tar.gz
MFH: Optimize substr_replace
-rw-r--r--ext/standard/string.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/ext/standard/string.c b/ext/standard/string.c
index 914cac5395..fe8989c0f9 100644
--- a/ext/standard/string.c
+++ b/ext/standard/string.c
@@ -1739,11 +1739,12 @@ PHP_FUNCTION(substr_replace)
}
result_len = Z_STRLEN_PP(str) - l + Z_STRLEN_PP(repl);
- result = ecalloc(result_len + 1, sizeof(char *));
+ result = emalloc(result_len + 1);
memcpy(result, Z_STRVAL_PP(str), f);
- memcpy(&result[f], Z_STRVAL_PP(repl), Z_STRLEN_PP(repl));
- memcpy(&result[f + Z_STRLEN_PP(repl)], Z_STRVAL_PP(str) + f + l, Z_STRLEN_PP(str) - f - l);
+ memcpy((result + f), Z_STRVAL_PP(repl), Z_STRLEN_PP(repl));
+ memcpy((result + f + Z_STRLEN_PP(repl)), Z_STRVAL_PP(str) + f + l, Z_STRLEN_PP(str) - f - l);
+ result[result_len] = '\0';
RETURN_STRINGL(result, result_len, 0);
}