File tree Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Expand file tree Collapse file tree 1 file changed +6
-3
lines changed Original file line number Diff line number Diff line change @@ -193,9 +193,12 @@ static zend_bool kept_alive_by_loop_var_free(scdf_ctx *scdf, uint32_t block_idx)
193
193
zend_op * opline = & op_array -> opcodes [i ];
194
194
if (opline -> opcode == ZEND_FE_FREE ||
195
195
(opline -> opcode == ZEND_FREE && opline -> extended_value == ZEND_FREE_SWITCH )) {
196
- zend_op * def_opline = zend_optimizer_get_loop_var_def (op_array , opline );
197
- if (def_opline ) {
198
- uint32_t def_block = cfg -> map [def_opline - op_array -> opcodes ];
196
+ int ssa_var = scdf -> ssa -> ops [i ].op1_use ;
197
+ if (ssa_var >= 0 ) {
198
+ int op_num = scdf -> ssa -> vars [ssa_var ].definition ;
199
+ uint32_t def_block ;
200
+ ZEND_ASSERT (op_num >= 0 );
201
+ def_block = cfg -> map [op_num ];
199
202
if (zend_bitset_in (scdf -> executable_blocks , def_block )) {
200
203
return 1 ;
201
204
}
You can’t perform that action at this time.
0 commit comments