]> granicus.if.org Git - php/commitdiff
Intern persistent constant names in first place
authorDmitry Stogov <dmitry@zend.com>
Wed, 29 Nov 2017 22:15:11 +0000 (01:15 +0300)
committerDmitry Stogov <dmitry@zend.com>
Wed, 29 Nov 2017 22:15:11 +0000 (01:15 +0300)
Zend/zend_constants.c

index c24792f7b83fe7a992bd3854ede6e894015ea549..d8b10b1e91565a320b1b684132da266006d1c0fe 100644 (file)
@@ -144,7 +144,7 @@ ZEND_API void zend_register_null_constant(const char *name, size_t name_len, int
 
        ZVAL_NULL(&c.value);
        c.flags = flags;
-       c.name = zend_string_init(name, name_len, flags & CONST_PERSISTENT);
+       c.name = zend_string_init_interned(name, name_len, flags & CONST_PERSISTENT);
        c.module_number = module_number;
        zend_register_constant(&c);
 }
@@ -155,7 +155,7 @@ ZEND_API void zend_register_bool_constant(const char *name, size_t name_len, zen
 
        ZVAL_BOOL(&c.value, bval);
        c.flags = flags;
-       c.name = zend_string_init(name, name_len, flags & CONST_PERSISTENT);
+       c.name = zend_string_init_interned(name, name_len, flags & CONST_PERSISTENT);
        c.module_number = module_number;
        zend_register_constant(&c);
 }
@@ -166,7 +166,7 @@ ZEND_API void zend_register_long_constant(const char *name, size_t name_len, zen
 
        ZVAL_LONG(&c.value, lval);
        c.flags = flags;
-       c.name = zend_string_init(name, name_len, flags & CONST_PERSISTENT);
+       c.name = zend_string_init_interned(name, name_len, flags & CONST_PERSISTENT);
        c.module_number = module_number;
        zend_register_constant(&c);
 }
@@ -178,7 +178,7 @@ ZEND_API void zend_register_double_constant(const char *name, size_t name_len, d
 
        ZVAL_DOUBLE(&c.value, dval);
        c.flags = flags;
-       c.name = zend_string_init(name, name_len, flags & CONST_PERSISTENT);
+       c.name = zend_string_init_interned(name, name_len, flags & CONST_PERSISTENT);
        c.module_number = module_number;
        zend_register_constant(&c);
 }
@@ -190,7 +190,7 @@ ZEND_API void zend_register_stringl_constant(const char *name, size_t name_len,
 
        ZVAL_NEW_STR(&c.value, zend_string_init(strval, strlen, flags & CONST_PERSISTENT));
        c.flags = flags;
-       c.name = zend_string_init(name, name_len, flags & CONST_PERSISTENT);
+       c.name = zend_string_init_interned(name, name_len, flags & CONST_PERSISTENT);
        c.module_number = module_number;
        zend_register_constant(&c);
 }
@@ -466,10 +466,6 @@ ZEND_API int zend_register_constant(zend_constant *c)
        printf("Registering constant for module %d\n", c->module_number);
 #endif
 
-    if (c->module_number != PHP_USER_CONSTANT) {
-               c->name = zend_new_interned_string(c->name);
-       }
-
        if (!(c->flags & CONST_CS)) {
                lowercase_name = zend_string_tolower_ex(c->name, c->flags & CONST_PERSISTENT);
                lowercase_name = zend_new_interned_string(lowercase_name);