@@ -5533,22 +5533,25 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
5533
5533
goto done ;
5534
5534
case ZEND_CHECK_FUNC_ARG :
5535
5535
if (!JIT_G (current_frame )
5536
- || !JIT_G (current_frame )-> call
5537
- || !JIT_G (current_frame )-> call -> func ) {
5538
- break ;
5539
- }
5540
- if (opline -> op2_type == IS_CONST
5541
- || opline -> op2 .num > MAX_ARG_FLAG_NUM ) {
5542
- /* Named parameters not supported in JIT */
5543
- TRACE_FRAME_SET_LAST_SEND_UNKNOWN (JIT_G (current_frame )-> call );
5536
+ || !JIT_G (current_frame )-> call ) {
5544
5537
break ;
5545
5538
}
5546
5539
#ifdef HAVE_FFI
5547
5540
if (TRACE_FRAME_FFI (JIT_G (current_frame )-> call )) {
5548
5541
/* FFI arguments alwyas sent by value ??? */
5542
+ TRACE_FRAME_SET_LAST_SEND_BY_VAL (JIT_G (current_frame )-> call );
5549
5543
goto done ;
5550
5544
}
5551
5545
#endif
5546
+ if (!JIT_G (current_frame )-> call -> func ) {
5547
+ break ;
5548
+ }
5549
+ if (opline -> op2_type == IS_CONST
5550
+ || opline -> op2 .num > MAX_ARG_FLAG_NUM ) {
5551
+ /* Named parameters not supported in JIT */
5552
+ TRACE_FRAME_SET_LAST_SEND_UNKNOWN (JIT_G (current_frame )-> call );
5553
+ break ;
5554
+ }
5552
5555
if (!zend_jit_check_func_arg (& ctx , opline )) {
5553
5556
goto jit_failure ;
5554
5557
}
@@ -5986,7 +5989,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
5986
5989
case ZEND_FETCH_DIM_FUNC_ARG :
5987
5990
if (!JIT_G (current_frame )
5988
5991
|| !JIT_G (current_frame )-> call
5989
- || !JIT_G (current_frame )-> call -> func
5992
+ //??? || !JIT_G(current_frame)->call->func
5990
5993
|| !TRACE_FRAME_IS_LAST_SEND_BY_VAL (JIT_G (current_frame )-> call )) {
5991
5994
break ;
5992
5995
}
@@ -6226,7 +6229,7 @@ static const void *zend_jit_trace(zend_jit_trace_rec *trace_buffer, uint32_t par
6226
6229
case ZEND_FETCH_OBJ_FUNC_ARG :
6227
6230
if (!JIT_G (current_frame )
6228
6231
|| !JIT_G (current_frame )-> call
6229
- || !JIT_G (current_frame )-> call -> func
6232
+ //??? || !JIT_G(current_frame)->call->func
6230
6233
|| !TRACE_FRAME_IS_LAST_SEND_BY_VAL (JIT_G (current_frame )-> call )) {
6231
6234
break ;
6232
6235
}
0 commit comments