Skip to content

Commit 02fde34

Browse files
committed
Save one zval copy
1 parent 922285e commit 02fde34

File tree

2 files changed

+10
-16
lines changed

2 files changed

+10
-16
lines changed

Zend/zend_vm_def.h

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1918,16 +1918,13 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY)
19181918
}
19191919
}
19201920

1921-
if (UNEXPECTED(EX(call)->num_additional_args != 0)) {
1922-
num_args = opline->extended_value + EX(call)->num_additional_args;
1923-
EX(function_state).arguments = zend_vm_stack_push_args(num_args TSRMLS_CC);
1924-
} else {
1925-
zval tmp;
1926-
1921+
if (EXPECTED(EX(call)->num_additional_args == 0)) {
19271922
num_args = opline->extended_value;
1928-
ZVAL_LONG(&tmp, num_args);
19291923
EX(function_state).arguments = zend_vm_stack_top(TSRMLS_C);
1930-
zend_vm_stack_push(&tmp TSRMLS_CC);
1924+
ZVAL_LONG(zend_vm_stack_top_inc(TSRMLS_C), num_args);
1925+
} else {
1926+
num_args = opline->extended_value + EX(call)->num_additional_args;
1927+
EX(function_state).arguments = zend_vm_stack_push_args(num_args TSRMLS_CC);
19311928
}
19321929
LOAD_OPLINE();
19331930

Zend/zend_vm_execute.h

Lines changed: 5 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -528,16 +528,13 @@ static int ZEND_FASTCALL zend_do_fcall_common_helper_SPEC(ZEND_OPCODE_HANDLER_AR
528528
}
529529
}
530530

531-
if (UNEXPECTED(EX(call)->num_additional_args != 0)) {
532-
num_args = opline->extended_value + EX(call)->num_additional_args;
533-
EX(function_state).arguments = zend_vm_stack_push_args(num_args TSRMLS_CC);
534-
} else {
535-
zval tmp;
536-
531+
if (EXPECTED(EX(call)->num_additional_args == 0)) {
537532
num_args = opline->extended_value;
538-
ZVAL_LONG(&tmp, num_args);
539533
EX(function_state).arguments = zend_vm_stack_top(TSRMLS_C);
540-
zend_vm_stack_push(&tmp TSRMLS_CC);
534+
ZVAL_LONG(zend_vm_stack_top_inc(TSRMLS_C), num_args);
535+
} else {
536+
num_args = opline->extended_value + EX(call)->num_additional_args;
537+
EX(function_state).arguments = zend_vm_stack_push_args(num_args TSRMLS_CC);
541538
}
542539
LOAD_OPLINE();
543540

0 commit comments

Comments
 (0)