]> granicus.if.org Git - php/commitdiff
Fix wrong size calculation related to function name
authorNikita Popov <nikita.ppv@gmail.com>
Fri, 5 Jul 2019 08:44:48 +0000 (10:44 +0200)
committerNikita Popov <nikita.ppv@gmail.com>
Fri, 5 Jul 2019 08:46:41 +0000 (10:46 +0200)
It would be nice if we could drop this manual function name reuse
code altogether and rely on interning for it.

ext/opcache/zend_persist_calc.c

index a38398e3cfac072270c6e80b19f31a0d7d1ee329..cc798b27de05030ac5cc66fbee19ae34324217c6 100644 (file)
@@ -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);
+                       }
                }
     }