diff options
author | Dmitry Stogov <dmitry@zend.com> | 2017-10-31 18:51:35 +0300 |
---|---|---|
committer | Dmitry Stogov <dmitry@zend.com> | 2017-10-31 18:51:35 +0300 |
commit | bbfd0df9d3903f1a5faa301e553de92372d70f03 (patch) | |
tree | 597ea731ee50ebe268d67e59425c2ef333831365 /ext | |
parent | 5b044aacbeb481a840da9f9733dacfc3e0bf5cb7 (diff) | |
download | php-git-bbfd0df9d3903f1a5faa301e553de92372d70f03.tar.gz |
Use interned strings for persistent stream wrappers and filters
Diffstat (limited to 'ext')
-rw-r--r-- | ext/opcache/ZendAccelerator.c | 15 | ||||
-rw-r--r-- | ext/standard/user_filters.c | 2 |
2 files changed, 16 insertions, 1 deletions
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c index 260ecc9d2d..178f96f67e 100644 --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@ -549,6 +549,7 @@ static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_int { uint32_t j; Bucket *p, *q; + HashTable *ht; /* empty string */ zend_empty_string = new_interned_string(zend_empty_string); @@ -680,6 +681,20 @@ static void accel_copy_permanent_strings(zend_new_interned_string_func_t new_int entry->orig_value = new_interned_string(entry->orig_value); } } ZEND_HASH_FOREACH_END(); + + ht = php_get_stream_filters_hash_global(); + ZEND_HASH_FOREACH_BUCKET(ht, p) { + if (p->key) { + p->key = new_interned_string(p->key); + } + } ZEND_HASH_FOREACH_END(); + + ht = php_stream_get_url_stream_wrappers_hash_global(); + ZEND_HASH_FOREACH_BUCKET(ht, p) { + if (p->key) { + p->key = new_interned_string(p->key); + } + } ZEND_HASH_FOREACH_END(); } static zend_string *accel_replace_string_by_shm_permanent(zend_string *str) diff --git a/ext/standard/user_filters.c b/ext/standard/user_filters.c index 4d9f4f5fbb..1f39464a97 100644 --- a/ext/standard/user_filters.c +++ b/ext/standard/user_filters.c @@ -587,7 +587,7 @@ PHP_FUNCTION(stream_filter_register) fdat->classname = zend_string_copy(classname); if (zend_hash_add_ptr(BG(user_filter_map), filtername, fdat) != NULL && - php_stream_filter_register_factory_volatile(ZSTR_VAL(filtername), &user_filter_factory) == SUCCESS) { + php_stream_filter_register_factory_volatile(filtername, &user_filter_factory) == SUCCESS) { RETVAL_TRUE; } else { zend_string_release(classname); |