]> granicus.if.org Git - php/commitdiff
Fixed tracing JIT for closure run_time_cache access
authorDmitry Stogov <dmitry@zend.com>
Fri, 29 May 2020 10:58:04 +0000 (13:58 +0300)
committerDmitry Stogov <dmitry@zend.com>
Mon, 1 Jun 2020 09:06:26 +0000 (12:06 +0300)
ext/opcache/jit/zend_jit_x86.dasc

index 835fc4a5a525fa4442809cb4106cea5fdb8207bd..e6a0030b1c8f1e9d282dab9f0b5dccd1ab27ae9a 100644 (file)
@@ -8419,7 +8419,7 @@ static int zend_jit_do_fcall(dasm_State **Dst, const zend_op *opline, const zend
 #if ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR
                                |       mov r2, aword [r2]
 #elif ZEND_MAP_PTR_KIND == ZEND_MAP_PTR_KIND_PTR_OR_OFFSET
-                               if (func) {
+                               if (func && !(func->op_array.fn_flags & ZEND_ACC_CLOSURE)) {
                                        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)) {