|
|
|
@ -33,7 +33,6 @@ |
|
|
|
#include "zend_extensions.h" |
|
|
|
#include "zend_fast_cache.h" |
|
|
|
#include "zend_ini.h" |
|
|
|
#include "zend_default_classes.h" |
|
|
|
|
|
|
|
#define get_zval_ptr(node, Ts, should_free, type) _get_zval_ptr(node, Ts, should_free TSRMLS_CC) |
|
|
|
#define get_zval_ptr_ptr(node, Ts, type) _get_zval_ptr_ptr(node, Ts TSRMLS_CC) |
|
|
|
@ -2501,8 +2500,8 @@ int zend_do_fcall_common_helper(ZEND_OPCODE_HANDLER_ARGS) |
|
|
|
zend_bool should_change_scope; |
|
|
|
|
|
|
|
if (EX(function_state).function->common.fn_flags & ZEND_ACC_ABSTRACT) { |
|
|
|
zend_throw_exception_ex(zend_exception_get_abstract(), 0 TSRMLS_CC, "Abstract method %s::%s called", EX(function_state).function->common.scope->name, EX(function_state).function->common.function_name); |
|
|
|
goto fcall_exception; |
|
|
|
zend_error(E_ERROR, "Abstract method %s::%s called", EX(function_state).function->common.scope->name, EX(function_state).function->common.function_name); |
|
|
|
NEXT_OPCODE(); /* Never reached */ |
|
|
|
} |
|
|
|
|
|
|
|
zend_ptr_stack_n_push(&EG(argument_stack), 2, (void *) EX(opline)->extended_value, NULL); |
|
|
|
@ -2635,7 +2634,6 @@ int zend_do_fcall_common_helper(ZEND_OPCODE_HANDLER_ARGS) |
|
|
|
EG(function_state_ptr) = &EX(function_state); |
|
|
|
zend_ptr_stack_clear_multiple(TSRMLS_C); |
|
|
|
|
|
|
|
fcall_exception: |
|
|
|
if (EG(exception)) { |
|
|
|
if (return_value_used && EX_T(EX(opline)->result.u.var).var.ptr) { |
|
|
|
zval_ptr_dtor(&EX_T(EX(opline)->result.u.var).var.ptr); |
|
|
|
|