diff options
| author | Ilia Alshanetsky <iliaa@php.net> | 2003-12-01 23:21:25 +0000 |
|---|---|---|
| committer | Ilia Alshanetsky <iliaa@php.net> | 2003-12-01 23:21:25 +0000 |
| commit | da55f714a9bf3a8fa806329bb26c161b9b27fb96 (patch) | |
| tree | a481bcda6274b0818531464ae55a9231677e3f0a | |
| parent | 8d025a62fb7946c3a82798eb354f9b4090bb703c (diff) | |
| download | php-git-da55f714a9bf3a8fa806329bb26c161b9b27fb96.tar.gz | |
MFH: Optimize substr_replace
| -rw-r--r-- | ext/standard/string.c | 7 |
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); } |
