|
|
|
@ -1830,7 +1830,7 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY) |
|
|
|
} |
|
|
|
if (!zend_execute_internal) { |
|
|
|
/* saves one function call if zend_execute_internal is not used */ |
|
|
|
((zend_internal_function *) EX(function_state).function)->handler(opline->extended_value, EX_T(opline->result.u.var).var.ptr, EX(object), return_value_used TSRMLS_CC); |
|
|
|
((zend_internal_function *) EX(function_state).function)->handler(opline->extended_value, EX_T(opline->result.u.var).var.ptr, EX(function_state).function->common.return_reference?&EX_T(opline->result.u.var).var.ptr:NULL, EX(object), return_value_used TSRMLS_CC); |
|
|
|
} else { |
|
|
|
zend_execute_internal(EXECUTE_DATA, return_value_used TSRMLS_CC); |
|
|
|
} |
|
|
|
@ -1890,7 +1890,7 @@ ZEND_VM_HELPER(zend_do_fcall_common_helper, ANY, ANY) |
|
|
|
|
|
|
|
/* Not sure what should be done here if it's a static method */ |
|
|
|
if (EX(object)) { |
|
|
|
Z_OBJ_HT_P(EX(object))->call_method(EX(fbc)->common.function_name, opline->extended_value, EX_T(opline->result.u.var).var.ptr, EX(object), return_value_used TSRMLS_CC); |
|
|
|
Z_OBJ_HT_P(EX(object))->call_method(EX(fbc)->common.function_name, opline->extended_value, EX_T(opline->result.u.var).var.ptr, &EX_T(opline->result.u.var).var.ptr, EX(object), return_value_used TSRMLS_CC); |
|
|
|
} else { |
|
|
|
zend_error_noreturn(E_ERROR, "Cannot call overloaded function for non-object"); |
|
|
|
} |
|
|
|
|