Convert exception instanceof checks to assertions

This commit is contained in:
Nikita Popov 2020-09-21 11:05:19 +02:00
parent edf22962ef
commit d60c43e397

View file

@ -92,11 +92,10 @@ void zend_exception_set_previous(zend_object *exception, zend_object *add_previo
return;
}
ZEND_ASSERT(instanceof_function(add_previous->ce, zend_ce_throwable)
&& "Previous execption must implement Throwable");
ZVAL_OBJ(&pv, add_previous);
if (!instanceof_function(Z_OBJCE(pv), zend_ce_throwable)) {
zend_error_noreturn(E_CORE_ERROR, "Previous exception must implement Throwable");
return;
}
ZVAL_OBJ(&zv, exception);
ex = &zv;
do {
@ -837,16 +836,14 @@ static zend_object *zend_throw_exception_zstr(zend_class_entry *exception_ce, ze
{
zval ex, tmp;
if (exception_ce) {
if (!instanceof_function(exception_ce, zend_ce_throwable)) {
zend_error(E_NOTICE, "Exceptions must implement Throwable");
if (!exception_ce) {
exception_ce = zend_ce_exception;
}
} else {
exception_ce = zend_ce_exception;
}
object_init_ex(&ex, exception_ce);
ZEND_ASSERT(instanceof_function(exception_ce, zend_ce_throwable)
&& "Exceptions must implement Throwable");
object_init_ex(&ex, exception_ce);
if (message) {
ZVAL_STR(&tmp, message);