diff options
author | Dmitry Stogov <dmitry@zend.com> | 2017-05-18 17:59:59 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2017-05-18 17:59:59 +0300 |
commit | a08723d3d313445191470c19e12235a56165600a (patch) | |
tree | 8b295805411f44233d2332a0db07dcd1eec88a4d /main/php_variables.c | |
parent | b1a07d430bf8292a835bd04b553bc1867d6d6972 (diff) | |
download | php-git-a08723d3d313445191470c19e12235a56165600a.tar.gz |
Use interned empty and "one char" strings.
Diffstat (limited to 'main/php_variables.c')
-rw-r--r-- | main/php_variables.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/main/php_variables.c b/main/php_variables.c index 577917a007..ae5e922ef6 100644 --- a/main/php_variables.c +++ b/main/php_variables.c @@ -49,7 +49,13 @@ PHPAPI void php_register_variable_safe(char *var, char *strval, size_t str_len, assert(strval != NULL); /* Prepare value */ - ZVAL_NEW_STR(&new_entry, zend_string_init(strval, str_len, 0)); + if (str_len == 0) { + ZVAL_EMPTY_STRING(&new_entry); + } else if (str_len == 1) { + ZVAL_INTERNED_STR(&new_entry, ZSTR_CHAR((zend_uchar)*strval)); + } else { + ZVAL_NEW_STR(&new_entry, zend_string_init(strval, str_len, 0)); + } php_register_variable_ex(var, &new_entry, track_vars_array); } |