@@ -4612,14 +4612,15 @@ static void zend_compile_ns_call(znode *result, znode *name_node, zend_ast *args
4612
4612
{
4613
4613
int name_constants = zend_add_ns_func_name_literal (Z_STR (name_node -> u .constant ));
4614
4614
4615
- /* Find frameless function with same name */
4615
+ /* Find frameless function with same name. */
4616
4616
zend_function * frameless_function = NULL ;
4617
4617
if (args_ast -> kind != ZEND_AST_CALLABLE_CONVERT
4618
4618
&& !zend_args_contain_unpack_or_named (zend_ast_get_list (args_ast ))) {
4619
4619
zend_string * lc_func_name = Z_STR_P (CT_CONSTANT_EX (CG (active_op_array ), name_constants + 2 ));
4620
4620
frameless_function = zend_hash_find_ptr (CG (function_table ), lc_func_name );
4621
4621
}
4622
4622
4623
+ /* Check whether any frameless handler may actually be used. */
4623
4624
uint32_t jmp_fl_opnum = 0 ;
4624
4625
const zend_frameless_function_info * frameless_function_info = NULL ;
4625
4626
if (frameless_function ) {
@@ -4633,14 +4634,15 @@ static void zend_compile_ns_call(znode *result, znode *name_node, zend_ast *args
4633
4634
}
4634
4635
}
4635
4636
4637
+ /* Compile ns call. */
4636
4638
zend_op * opline = get_next_op ();
4637
4639
opline -> opcode = ZEND_INIT_NS_FCALL_BY_NAME ;
4638
4640
opline -> op2_type = IS_CONST ;
4639
4641
opline -> op2 .constant = name_constants ;
4640
4642
opline -> result .num = zend_alloc_cache_slot ();
4641
-
4642
4643
zend_compile_call_common (result , args_ast , NULL , lineno );
4643
4644
4645
+ /* Compile frameless call. */
4644
4646
if (frameless_function_info ) {
4645
4647
uint32_t jmp_end_opnum = zend_emit_jump (0 );
4646
4648
uint32_t jmp_fl_target = get_next_op_number ();
0 commit comments