diff options
author | Dmitry Stogov <dmitry@zend.com> | 2017-06-07 13:50:16 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2017-06-07 13:50:16 +0300 |
commit | 71daef93bcbf459980ae4432227302034d1688f6 (patch) | |
tree | 5940b2adfc55a0a0c2b875fbb323999f31493b35 /win32/sendmail.c | |
parent | 5f055273932d5f2a5ef21f4aace92c32e685fad0 (diff) | |
download | php-git-71daef93bcbf459980ae4432227302034d1688f6.tar.gz |
preg_replace() optimization
Diffstat (limited to 'win32/sendmail.c')
-rw-r--r-- | win32/sendmail.c | 18 |
1 files changed, 8 insertions, 10 deletions
diff --git a/win32/sendmail.c b/win32/sendmail.c index fb1a8f2299..c71ab2201f 100644 --- a/win32/sendmail.c +++ b/win32/sendmail.c @@ -134,47 +134,45 @@ static zend_string *php_win32_mail_trim_header(char *header) #if HAVE_PCRE || HAVE_BUNDLED_PCRE zend_string *result, *result2; - zval replace; + zend_string *replace; zend_string *regex; if (!header) { return NULL; } - ZVAL_STRINGL(&replace, PHP_WIN32_MAIL_UNIFY_REPLACE, strlen(PHP_WIN32_MAIL_UNIFY_REPLACE)); + replace = zend_string_init(PHP_WIN32_MAIL_UNIFY_REPLACE, strlen(PHP_WIN32_MAIL_UNIFY_REPLACE), 0); regex = zend_string_init(PHP_WIN32_MAIL_UNIFY_PATTERN, sizeof(PHP_WIN32_MAIL_UNIFY_PATTERN)-1, 0); result = php_pcre_replace(regex, NULL, header, (int)strlen(header), - &replace, - 0, + replace, -1, NULL); - zval_ptr_dtor(&replace); + zend_string_release(replace); zend_string_release(regex); if (NULL == result) { return NULL; } - ZVAL_STRING(&replace, PHP_WIN32_MAIL_RMVDBL_PATTERN); + replace = zend_string_init(PHP_WIN32_MAIL_RMVDBL_PATTERN, strlen(PHP_WIN32_MAIL_RMVDBL_PATTERN), 0); regex = zend_string_init(PHP_WIN32_MAIL_RMVDBL_PATTERN, sizeof(PHP_WIN32_MAIL_RMVDBL_PATTERN)-1, 0); result2 = php_pcre_replace(regex, result, ZSTR_VAL(result), (int)ZSTR_LEN(result), - &replace, - 0, + replace, -1, NULL); - zval_ptr_dtor(&replace); + zend_string_release(replace); zend_string_release(regex); zend_string_release(result); return result2; #else /* In case we don't have PCRE support (for whatever reason...) simply do nothing and return the unmodified header */ - return estrdup(header); + return zend_string_init(header, strlen(header), 0); #endif } |