From: Dmitry Stogov Date: Thu, 7 Dec 2017 09:27:16 +0000 (+0300) Subject: Intern string constant values X-Git-Tag: php-7.3.0alpha1~863 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fd453aa1d13847f8b2176af293f5a420b94b5d6a;p=php Intern string constant values --- diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index 1eda6daefd..3fa547bcf0 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -187,7 +187,7 @@ ZEND_API void zend_register_stringl_constant(const char *name, size_t name_len, { zend_constant c; - ZVAL_NEW_STR(&c.value, zend_string_init(strval, strlen, flags & CONST_PERSISTENT)); + ZVAL_STR(&c.value, zend_string_init_interned(strval, strlen, flags & CONST_PERSISTENT)); c.flags = flags; c.name = zend_string_init_interned(name, name_len, flags & CONST_PERSISTENT); c.module_number = module_number; diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c index 9094f1a5db..6f42db9d29 100644 --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@ -640,6 +640,9 @@ static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_int if (c->name) { c->name = new_interned_string(c->name); } + if (Z_TYPE(c->value) == IS_STRING) { + ZVAL_STR(&c->value, new_interned_string(Z_STR(c->value))); + } } ZEND_HASH_FOREACH_END(); /* auto globals hash keys and names */