]> granicus.if.org Git - php/commitdiff
ZEND_ACC_IMMUTABLE may be reset for closures
authorDmitry Stogov <dmitry@zend.com>
Mon, 25 May 2020 14:45:13 +0000 (17:45 +0300)
committerDmitry Stogov <dmitry@zend.com>
Mon, 25 May 2020 14:45:13 +0000 (17:45 +0300)
ext/opcache/jit/zend_jit_x86.dasc

index 867ffbd74b2cbfeec6d57912843cb079646a5a18..11179f696b3f63da297d37f626808375df32b3da 100644 (file)
@@ -8323,7 +8323,7 @@ static int zend_jit_do_fcall(dasm_State **Dst, const zend_op *opline, const zend
                                |       mov r2, aword [r2]
 #elif ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR_OR_OFFSET
                                if (func) {
-                                       if (func->op_array.fn_flags & ZEND_ACC_IMMUTABLE) {
+                                       if (ZEND_MAP_PTR_IS_OFFSET(func->op_array.run_time_cache)) {
                                                |       MEM_OP2_2_ZTS add, r2, aword, compiler_globals, map_ptr_base, r1
                                        } else if (!zend_accel_in_shm(func->op_array.opcodes)) {
                                                /* the called op_array may be not persisted yet */