summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-07-05 10:47:01 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-07-05 10:47:01 +0200
commitf8d8b96e9246d9bc86c16bd9c1bed539035db4e1 (patch)
tree30bb39f7cf5a20c3b7658a7c79c19f2058e72172 /ext
parentdfce767a62a2608c139d3c0273610c31303235f0 (diff)
parentea43624972b51c367614c62257bda09a90f1d76f (diff)
downloadphp-git-f8d8b96e9246d9bc86c16bd9c1bed539035db4e1.tar.gz
Merge branch 'PHP-7.4'
Diffstat (limited to 'ext')
-rw-r--r--ext/opcache/ZendAccelerator.c23
-rw-r--r--ext/opcache/zend_persist_calc.c10
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);
+ }
}
}