@@ -64,13 +64,13 @@ static int zend_implement_throwable(zend_class_entry *interface, zend_class_entr
64
64
}
65
65
/* }}} */
66
66
67
- static inline zend_class_entry * i_get_exception_base (zval * object ) /* {{{ */
67
+ static inline zend_class_entry * i_get_exception_base (zend_object * object ) /* {{{ */
68
68
{
69
- return instanceof_function (Z_OBJCE_P ( object ) , zend_ce_exception ) ? zend_ce_exception : zend_ce_error ;
69
+ return instanceof_function (object -> ce , zend_ce_exception ) ? zend_ce_exception : zend_ce_error ;
70
70
}
71
71
/* }}} */
72
72
73
- ZEND_API zend_class_entry * zend_get_exception_base (zval * object ) /* {{{ */
73
+ ZEND_API zend_class_entry * zend_get_exception_base (zend_object * object ) /* {{{ */
74
74
{
75
75
return i_get_exception_base (object );
76
76
}
@@ -99,15 +99,15 @@ void zend_exception_set_previous(zend_object *exception, zend_object *add_previo
99
99
ZVAL_OBJ (& zv , exception );
100
100
ex = & zv ;
101
101
do {
102
- ancestor = zend_read_property_ex (i_get_exception_base (& pv ), Z_OBJ ( pv ) , ZSTR_KNOWN (ZEND_STR_PREVIOUS ), 1 , & rv );
102
+ ancestor = zend_read_property_ex (i_get_exception_base (add_previous ), add_previous , ZSTR_KNOWN (ZEND_STR_PREVIOUS ), 1 , & rv );
103
103
while (Z_TYPE_P (ancestor ) == IS_OBJECT ) {
104
104
if (Z_OBJ_P (ancestor ) == Z_OBJ_P (ex )) {
105
105
OBJ_RELEASE (add_previous );
106
106
return ;
107
107
}
108
- ancestor = zend_read_property_ex (i_get_exception_base (ancestor ), Z_OBJ_P (ancestor ), ZSTR_KNOWN (ZEND_STR_PREVIOUS ), 1 , & rv );
108
+ ancestor = zend_read_property_ex (i_get_exception_base (Z_OBJ_P ( ancestor ) ), Z_OBJ_P (ancestor ), ZSTR_KNOWN (ZEND_STR_PREVIOUS ), 1 , & rv );
109
109
}
110
- base_ce = i_get_exception_base (ex );
110
+ base_ce = i_get_exception_base (Z_OBJ_P ( ex ) );
111
111
previous = zend_read_property_ex (base_ce , Z_OBJ_P (ex ), ZSTR_KNOWN (ZEND_STR_PREVIOUS ), 1 , & rv );
112
112
if (Z_TYPE_P (previous ) == IS_NULL ) {
113
113
zend_update_property_ex (base_ce , ex , ZSTR_KNOWN (ZEND_STR_PREVIOUS ), & pv );
@@ -235,7 +235,7 @@ static zend_object *zend_default_exception_new_ex(zend_class_entry *class_type,
235
235
}
236
236
Z_SET_REFCOUNT (trace , 0 );
237
237
238
- base_ce = i_get_exception_base (& obj );
238
+ base_ce = i_get_exception_base (object );
239
239
240
240
if (EXPECTED ((class_type != zend_ce_parse_error && class_type != zend_ce_compile_error )
241
241
|| !(filename = zend_get_compiled_filename ()))) {
@@ -285,7 +285,7 @@ ZEND_METHOD(Exception, __construct)
285
285
zend_class_entry * base_ce ;
286
286
287
287
object = ZEND_THIS ;
288
- base_ce = i_get_exception_base (object );
288
+ base_ce = i_get_exception_base (Z_OBJ_P ( object ) );
289
289
290
290
if (zend_parse_parameters (ZEND_NUM_ARGS (), "|SlO!" , & message , & code , & previous , zend_ce_throwable ) == FAILURE ) {
291
291
RETURN_THROWS ();
@@ -309,9 +309,9 @@ ZEND_METHOD(Exception, __construct)
309
309
310
310
/* {{{ Exception unserialize checks */
311
311
#define CHECK_EXC_TYPE (id , type ) \
312
- pvalue = zend_read_property_ex(i_get_exception_base(object), Z_OBJ_P(object), ZSTR_KNOWN(id), 1, &value); \
312
+ pvalue = zend_read_property_ex(i_get_exception_base(Z_OBJ_P( object) ), Z_OBJ_P(object), ZSTR_KNOWN(id), 1, &value); \
313
313
if (Z_TYPE_P(pvalue) != IS_NULL && Z_TYPE_P(pvalue) != type) { \
314
- zend_unset_property(i_get_exception_base(object), object, ZSTR_VAL(ZSTR_KNOWN(id)), ZSTR_LEN(ZSTR_KNOWN(id))); \
314
+ zend_unset_property(i_get_exception_base(Z_OBJ_P( object) ), object, ZSTR_VAL(ZSTR_KNOWN(id)), ZSTR_LEN(ZSTR_KNOWN(id))); \
315
315
}
316
316
317
317
ZEND_METHOD (Exception , __wakeup )
@@ -375,9 +375,9 @@ ZEND_METHOD(ErrorException, __construct)
375
375
/* }}} */
376
376
377
377
#define GET_PROPERTY (object , id ) \
378
- zend_read_property_ex(i_get_exception_base(object), Z_OBJ_P(object), ZSTR_KNOWN(id), 0, &rv)
378
+ zend_read_property_ex(i_get_exception_base(Z_OBJ_P( object) ), Z_OBJ_P(object), ZSTR_KNOWN(id), 0, &rv)
379
379
#define GET_PROPERTY_SILENT (object , id ) \
380
- zend_read_property_ex(i_get_exception_base(object), Z_OBJ_P(object), ZSTR_KNOWN(id), 1, &rv)
380
+ zend_read_property_ex(i_get_exception_base(Z_OBJ_P( object) ), Z_OBJ_P(object), ZSTR_KNOWN(id), 1, &rv)
381
381
382
382
/* {{{ Get the file in which the exception occurred */
383
383
ZEND_METHOD (Exception , getFile )
@@ -601,7 +601,7 @@ ZEND_METHOD(Exception, getTraceAsString)
601
601
ZEND_PARSE_PARAMETERS_NONE ();
602
602
603
603
object = ZEND_THIS ;
604
- base_ce = i_get_exception_base (object );
604
+ base_ce = i_get_exception_base (Z_OBJ_P ( object ) );
605
605
606
606
trace = zend_read_property_ex (base_ce , Z_OBJ_P (object ), ZSTR_KNOWN (ZEND_STR_TRACE ), 1 , & rv );
607
607
if (EG (exception )) {
@@ -711,7 +711,7 @@ ZEND_METHOD(Exception, __toString)
711
711
712
712
exception = ZEND_THIS ;
713
713
/* Reset apply counts */
714
- while (exception && Z_TYPE_P (exception ) == IS_OBJECT && (base_ce = i_get_exception_base (exception )) && instanceof_function (Z_OBJCE_P (exception ), base_ce )) {
714
+ while (exception && Z_TYPE_P (exception ) == IS_OBJECT && (base_ce = i_get_exception_base (Z_OBJ_P ( exception ) )) && instanceof_function (Z_OBJCE_P (exception ), base_ce )) {
715
715
if (Z_IS_RECURSIVE_P (exception )) {
716
716
Z_UNPROTECT_RECURSION_P (exception );
717
717
} else {
@@ -721,7 +721,7 @@ ZEND_METHOD(Exception, __toString)
721
721
}
722
722
723
723
exception = ZEND_THIS ;
724
- base_ce = i_get_exception_base (exception );
724
+ base_ce = i_get_exception_base (Z_OBJ_P ( exception ) );
725
725
726
726
/* We store the result in the private property string so we can access
727
727
* the result in uncaught exception handlers without memleaks. */
@@ -940,7 +940,7 @@ ZEND_API ZEND_COLD int zend_exception_error(zend_object *ex, int severity) /* {{
940
940
if (Z_TYPE (tmp ) != IS_STRING ) {
941
941
zend_error (E_WARNING , "%s::__toString() must return a string" , ZSTR_VAL (ce_exception -> name ));
942
942
} else {
943
- zend_update_property_ex (i_get_exception_base (& exception ), & exception , ZSTR_KNOWN (ZEND_STR_STRING ), & tmp );
943
+ zend_update_property_ex (i_get_exception_base (ex ), & exception , ZSTR_KNOWN (ZEND_STR_STRING ), & tmp );
944
944
}
945
945
}
946
946
zval_ptr_dtor (& tmp );
0 commit comments