mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Drop unused RAISE_ABSTRACT_ERROR opcode
Abstract methods are being prevented from being called in DO_FCALL etc.
This commit is contained in:
parent
ab288b01d5
commit
290d71de75
5 changed files with 28 additions and 50 deletions
|
@ -3935,8 +3935,6 @@ void zend_begin_method_decl(zend_op_array *op_array, zend_string *name, zend_boo
|
|||
}
|
||||
|
||||
if (op_array->fn_flags & ZEND_ACC_ABSTRACT) {
|
||||
//zend_op *opline;
|
||||
|
||||
if (op_array->fn_flags & ZEND_ACC_PRIVATE) {
|
||||
zend_error_noreturn(E_COMPILE_ERROR, "%s function %s::%s() cannot be declared private",
|
||||
in_interface ? "Interface" : "Abstract", ce->name->val, name->val);
|
||||
|
@ -3948,11 +3946,6 @@ void zend_begin_method_decl(zend_op_array *op_array, zend_string *name, zend_boo
|
|||
}
|
||||
|
||||
ce->ce_flags |= ZEND_ACC_IMPLICIT_ABSTRACT_CLASS;
|
||||
|
||||
/*opline = get_next_op(op_array TSRMLS_CC);
|
||||
opline->opcode = ZEND_RAISE_ABSTRACT_ERROR;
|
||||
SET_UNUSED(opline->op1);
|
||||
SET_UNUSED(opline->op2);*/
|
||||
} else if (!has_body) {
|
||||
zend_error_noreturn(E_COMPILE_ERROR, "Non-abstract method %s::%s() must contain body",
|
||||
ce->name->val, name->val);
|
||||
|
|
|
@ -5082,13 +5082,6 @@ ZEND_VM_HANDLER(57, ZEND_BEGIN_SILENCE, ANY, ANY)
|
|||
ZEND_VM_NEXT_OPCODE();
|
||||
}
|
||||
|
||||
ZEND_VM_HANDLER(142, ZEND_RAISE_ABSTRACT_ERROR, ANY, ANY)
|
||||
{
|
||||
SAVE_OPLINE();
|
||||
zend_error_noreturn(E_ERROR, "Cannot call abstract method %s::%s()", EX(scope)->name->val, EX(func)->op_array.function_name->val);
|
||||
ZEND_VM_NEXT_OPCODE(); /* Never reached */
|
||||
}
|
||||
|
||||
ZEND_VM_HANDLER(58, ZEND_END_SILENCE, TMP, ANY)
|
||||
{
|
||||
USE_OPLINE
|
||||
|
|
|
@ -1142,13 +1142,6 @@ static int ZEND_FASTCALL ZEND_BEGIN_SILENCE_SPEC_HANDLER(ZEND_OPCODE_HANDLER_AR
|
|||
ZEND_VM_NEXT_OPCODE();
|
||||
}
|
||||
|
||||
static int ZEND_FASTCALL ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
|
||||
{
|
||||
SAVE_OPLINE();
|
||||
zend_error_noreturn(E_ERROR, "Cannot call abstract method %s::%s()", EX(scope)->name->val, EX(func)->op_array.function_name->val);
|
||||
ZEND_VM_NEXT_OPCODE(); /* Never reached */
|
||||
}
|
||||
|
||||
static int ZEND_FASTCALL ZEND_EXT_STMT_SPEC_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
|
||||
{
|
||||
SAVE_OPLINE();
|
||||
|
@ -10070,12 +10063,12 @@ static int ZEND_FASTCALL ZEND_COALESCE_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARG
|
|||
if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value);
|
||||
} else if (IS_TMP_VAR == IS_VAR && is_ref) {
|
||||
if (Z_OPT_REFCOUNTED_P(value)) Z_ADDREF_P(value);
|
||||
zval_dtor(free_op1.var);
|
||||
zval_ptr_dtor_nogc(free_op1.var);
|
||||
}
|
||||
ZEND_VM_JMP(opline->op2.jmp_addr);
|
||||
}
|
||||
|
||||
zval_dtor(free_op1.var);
|
||||
zval_ptr_dtor_nogc(free_op1.var);
|
||||
CHECK_EXCEPTION();
|
||||
ZEND_VM_NEXT_OPCODE();
|
||||
}
|
||||
|
@ -46851,31 +46844,31 @@ void zend_init_opcodes_handlers(void)
|
|||
ZEND_DECLARE_FUNCTION_SPEC_HANDLER,
|
||||
ZEND_DECLARE_FUNCTION_SPEC_HANDLER,
|
||||
ZEND_DECLARE_FUNCTION_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_RAISE_ABSTRACT_ERROR_SPEC_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_DECLARE_CONST_SPEC_CONST_CONST_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
ZEND_NULL_HANDLER,
|
||||
|
|
|
@ -164,7 +164,7 @@ const char *zend_vm_opcodes_map[170] = {
|
|||
"ZEND_DECLARE_CLASS",
|
||||
"ZEND_DECLARE_INHERITED_CLASS",
|
||||
"ZEND_DECLARE_FUNCTION",
|
||||
"ZEND_RAISE_ABSTRACT_ERROR",
|
||||
NULL,
|
||||
"ZEND_DECLARE_CONST",
|
||||
"ZEND_ADD_INTERFACE",
|
||||
"ZEND_DECLARE_INHERITED_CLASS_DELAYED",
|
||||
|
|
|
@ -155,7 +155,6 @@ ZEND_API const char *zend_get_opcode_name(zend_uchar opcode);
|
|||
#define ZEND_DECLARE_CLASS 139
|
||||
#define ZEND_DECLARE_INHERITED_CLASS 140
|
||||
#define ZEND_DECLARE_FUNCTION 141
|
||||
#define ZEND_RAISE_ABSTRACT_ERROR 142
|
||||
#define ZEND_DECLARE_CONST 143
|
||||
#define ZEND_ADD_INTERFACE 144
|
||||
#define ZEND_DECLARE_INHERITED_CLASS_DELAYED 145
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue