diff options
| author | Nikita Popov <nikita.ppv@gmail.com> | 2019-07-05 10:47:01 +0200 |
|---|---|---|
| committer | Nikita Popov <nikita.ppv@gmail.com> | 2019-07-05 10:47:01 +0200 |
| commit | f8d8b96e9246d9bc86c16bd9c1bed539035db4e1 (patch) | |
| tree | 30bb39f7cf5a20c3b7658a7c79c19f2058e72172 /ext | |
| parent | dfce767a62a2608c139d3c0273610c31303235f0 (diff) | |
| parent | ea43624972b51c367614c62257bda09a90f1d76f (diff) | |
| download | php-git-f8d8b96e9246d9bc86c16bd9c1bed539035db4e1.tar.gz | |
Merge branch 'PHP-7.4'
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/opcache/ZendAccelerator.c | 23 | ||||
| -rw-r--r-- | ext/opcache/zend_persist_calc.c | 10 |
2 files changed, 4 insertions, 29 deletions
diff --git a/ext/opcache/ZendAccelerator.c b/ext/opcache/ZendAccelerator.c index 27e528e12c..9252dc7e03 100644 --- a/ext/opcache/ZendAccelerator.c +++ b/ext/opcache/ZendAccelerator.c @@ -3650,7 +3650,6 @@ static void preload_link(void) zend_string *key; zend_bool found, changed; uint32_t i; - zend_op_array *op_array; dtor_func_t orig_dtor; zend_function *function; @@ -3844,28 +3843,6 @@ static void preload_link(void) EG(class_table)->pDestructor = orig_dtor; zend_hash_rehash(EG(class_table)); - /* Move run-time declared functions back to scripts */ - orig_dtor = EG(function_table)->pDestructor; - EG(function_table)->pDestructor = NULL; - ZEND_HASH_REVERSE_FOREACH_STR_KEY_VAL(EG(function_table), key, zv) { - op_array = Z_PTR_P(zv); - if (op_array->type == ZEND_INTERNAL_FUNCTION) { - break; - } - if (op_array->fn_flags & (ZEND_ACC_TOP_LEVEL|ZEND_ACC_CLOSURE)) { - continue; - } - script = zend_hash_find_ptr(preload_scripts, op_array->filename); - ZEND_ASSERT(script); - zend_hash_add(&script->script.function_table, key, zv); - ZVAL_UNDEF(zv); - zend_string_release(key); - EG(function_table)->nNumOfElements--; - } ZEND_HASH_FOREACH_END(); - EG(function_table)->pDestructor = orig_dtor; - zend_hash_rehash(EG(function_table)); - - /* Remove DECLARE opcodes */ ZEND_HASH_FOREACH_PTR(preload_scripts, script) { zend_op_array *op_array = &script->script.main_op_array; diff --git a/ext/opcache/zend_persist_calc.c b/ext/opcache/zend_persist_calc.c index a38398e3cf..cc798b27de 100644 --- a/ext/opcache/zend_persist_calc.c +++ b/ext/opcache/zend_persist_calc.c @@ -192,13 +192,11 @@ static void zend_persist_op_array_calc_ex(zend_op_array *op_array) if (op_array->function_name) { zend_string *old_name = op_array->function_name; - zend_string *new_name = zend_shared_alloc_get_xlat_entry(old_name); - - if (new_name) { - op_array->function_name = new_name; - } else { + if (!zend_shared_alloc_get_xlat_entry(old_name)) { ADD_INTERNED_STRING(op_array->function_name); - zend_shared_alloc_register_xlat_entry(old_name, op_array->function_name); + if (!zend_shared_alloc_get_xlat_entry(op_array->function_name)) { + zend_shared_alloc_register_xlat_entry(old_name, op_array->function_name); + } } } |
