Skip to content

Commit aa84e2c

Browse files
committed
Merge branch 'PHP-8.0'
* PHP-8.0: Stop on fake frame Fixed reference-counting propagation
2 parents 01de000 + de359c0 commit aa84e2c

File tree

2 files changed

+4
-1
lines changed

2 files changed

+4
-1
lines changed

ext/opcache/jit/zend_jit_trace.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1751,6 +1751,9 @@ static zend_ssa *zend_jit_trace_build_tssa(zend_jit_trace_rec *trace_buffer, uin
17511751
}
17521752
}
17531753
}
1754+
if (opline->op1_type == IS_CV && (info & MAY_BE_RC1)) {
1755+
info |= MAY_BE_RCN;
1756+
}
17541757
if (info & MAY_BE_UNDEF) {
17551758
info |= MAY_BE_NULL;
17561759
info &= ~MAY_BE_UNDEF;

ext/opcache/jit/zend_jit_vm_helpers.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -406,7 +406,7 @@ static int zend_jit_trace_recursive_ret_count(const zend_op_array *op_array, con
406406

407407
static int zend_jit_trace_has_recursive_ret(zend_execute_data *ex, const zend_op_array *orig_op_array, const zend_op *orig_opline, int ret_level)
408408
{
409-
while (ex != NULL && ret_level < ZEND_JIT_TRACE_MAX_RET_DEPTH) {
409+
while (ex != NULL && ex->func != NULL && ret_level < ZEND_JIT_TRACE_MAX_RET_DEPTH) {
410410
if (&ex->func->op_array == orig_op_array && ex->opline + 1 == orig_opline) {
411411
return 1;
412412
}

0 commit comments

Comments
 (0)