summaryrefslogtreecommitdiff
path: root/win32/sendmail.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2017-06-07 13:50:16 +0300
committerDmitry Stogov <dmitry@zend.com>2017-06-07 13:50:16 +0300
commit71daef93bcbf459980ae4432227302034d1688f6 (patch)
tree5940b2adfc55a0a0c2b875fbb323999f31493b35 /win32/sendmail.c
parent5f055273932d5f2a5ef21f4aace92c32e685fad0 (diff)
downloadphp-git-71daef93bcbf459980ae4432227302034d1688f6.tar.gz
preg_replace() optimization
Diffstat (limited to 'win32/sendmail.c')
-rw-r--r--win32/sendmail.c18
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
}