@@ -5113,6 +5113,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
51135113 case ZEND_ASSIGN_DIM :
51145114 op1_info = OP1_INFO ();
51155115 op1_addr = OP1_REG_ADDR ();
5116+ op1_indirect = 0 ;
51165117 if (opline -> op1_type == IS_CV
51175118 && (opline + 1 )-> op1_type == IS_CV
51185119 && (opline + 1 )-> op1 .var == opline -> op1 .var ) {
@@ -5121,14 +5122,12 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
51215122 }
51225123 if (opline -> op1_type == IS_VAR ) {
51235124 if (orig_op1_type != IS_UNKNOWN
5124- && (orig_op1_type & IS_TRACE_INDIRECT )
5125- && opline -> result_type == IS_UNUSED ) {
5125+ && (orig_op1_type & IS_TRACE_INDIRECT )) {
5126+ op1_indirect = 1 ;
51265127 if (!zend_jit_fetch_indirect_var (& ctx , opline , orig_op1_type ,
51275128 & op1_info , & op1_addr , !ssa -> var_info [ssa_op -> op1_use ].indirect_reference )) {
51285129 goto jit_failure ;
51295130 }
5130- } else {
5131- break ;
51325131 }
51335132 }
51345133 if (orig_op1_type != IS_UNKNOWN
@@ -5158,7 +5157,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
51585157 ffi_info = zend_arena_calloc (& CG (arena ), ssa -> vars_count , sizeof (zend_jit_ffi_info ));
51595158 }
51605159 if (!zend_jit_ffi_assign_dim (& ctx , opline , ssa , ssa_op ,
5161- op1_info , op1_addr ,
5160+ op1_info , op1_addr , op1_indirect ,
51625161 op2_info , (opline -> op2_type != IS_UNUSED ) ? OP2_REG_ADDR () : 0 ,
51635162 (opline -> op2_type != IS_UNUSED ) ? OP2_RANGE () : NULL ,
51645163 op1_data_info , OP1_DATA_REG_ADDR (),
@@ -5170,7 +5169,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
51705169 } else
51715170#endif
51725171 if (!zend_jit_assign_dim (& ctx , opline ,
5173- op1_info , op1_addr ,
5172+ op1_info , op1_addr , op1_indirect ,
51745173 op2_info , (opline -> op2_type != IS_UNUSED ) ? OP2_REG_ADDR () : 0 ,
51755174 (opline -> op2_type != IS_UNUSED ) ? OP2_RANGE () : NULL ,
51765175 op1_data_info , OP1_DATA_REG_ADDR (),
0 commit comments