From: Dmitry Stogov Date: Fri, 29 May 2020 10:58:04 +0000 (+0300) Subject: Fixed tracing JIT for closure run_time_cache access X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b0613d16d7e52d462a1ecb69da5ba88e74d4b0a6;p=php Fixed tracing JIT for closure run_time_cache access --- diff --git a/ext/opcache/jit/zend_jit_x86.dasc b/ext/opcache/jit/zend_jit_x86.dasc index 835fc4a5a5..e6a0030b1c 100644 --- a/ext/opcache/jit/zend_jit_x86.dasc +++ b/ext/opcache/jit/zend_jit_x86.dasc @@ -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)) {