}
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);
}
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);
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();
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();
}
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,