Skip to content

Commit d550c84

Browse files
committed
Fix unbalanced NEW call_level in JIT
For NEW followed by DO_FCALL, we handle both together and skip over the DO_FCALL, which means that the call_level for it will not be decremented. Do so explicitly instead.
1 parent 2cac73d commit d550c84

File tree

1 file changed

+3
-0
lines changed

1 file changed

+3
-0
lines changed

ext/opcache/jit/zend_jit.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4034,6 +4034,9 @@ static int zend_jit(const zend_op_array *op_array, zend_ssa *ssa, const zend_op
40344034
zend_jit_do_fcall(&dasm_state, next_opline, op_array, ssa, call_level, b + 1, NULL);
40354035
}
40364036
}
4037+
4038+
/* We skip over the DO_FCALL, so decrement call_level ourselves. */
4039+
call_level--;
40374040
}
40384041
break;
40394042
default:

0 commit comments

Comments
 (0)