From b9bb5f94ebf01c3642727d91880f8ad19af3e674 Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Tue, 19 Nov 2024 20:11:14 +0300 Subject: [PATCH] Use the immutable twin of temporary op_array --- ext/opcache/jit/zend_jit_trace.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ext/opcache/jit/zend_jit_trace.c b/ext/opcache/jit/zend_jit_trace.c index bb35ffa2a050c..103ad252ad7d9 100644 --- a/ext/opcache/jit/zend_jit_trace.c +++ b/ext/opcache/jit/zend_jit_trace.c @@ -7167,6 +7167,11 @@ static zend_jit_trace_stop zend_jit_compile_root_trace(zend_jit_trace_rec *trace t->polymorphism = 0; t->jmp_table_size = 0; t->op_array = trace_buffer[0].op_array; + if (!(t->op_array->fn_flags & ZEND_ACC_IMMUTABLE)) { + zend_jit_op_array_trace_extension *jit_extension = + (zend_jit_op_array_trace_extension*)ZEND_FUNC_INFO(t->op_array); + t->op_array = jit_extension->op_array; + } t->opline = trace_buffer[1].opline; t->exit_info = exit_info; t->stack_map = NULL;