@@ -110,7 +110,7 @@ void zend_exception_set_previous(zend_object *exception, zend_object *add_previo
110
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
- zend_update_property_ex (base_ce , ex , ZSTR_KNOWN (ZEND_STR_PREVIOUS ), & pv );
113
+ zend_update_property_ex (base_ce , Z_OBJ_P ( ex ) , ZSTR_KNOWN (ZEND_STR_PREVIOUS ), & pv );
114
114
GC_DELREF (add_previous );
115
115
return ;
116
116
}
@@ -215,14 +215,13 @@ ZEND_API void zend_clear_exception(void) /* {{{ */
215
215
216
216
static zend_object * zend_default_exception_new_ex (zend_class_entry * class_type , int skip_top_traces ) /* {{{ */
217
217
{
218
- zval obj , tmp ;
219
- zend_object * object ;
218
+ zval tmp ;
220
219
zval trace ;
221
220
zend_class_entry * base_ce ;
222
221
zend_string * filename ;
223
222
224
- Z_OBJ ( obj ) = object = zend_objects_new (class_type );
225
- Z_OBJ_HT ( obj ) = & default_exception_handlers ;
223
+ zend_object * object = zend_objects_new (class_type );
224
+ object -> handlers = & default_exception_handlers ;
226
225
227
226
object_properties_init (object , class_type );
228
227
@@ -240,17 +239,17 @@ static zend_object *zend_default_exception_new_ex(zend_class_entry *class_type,
240
239
if (EXPECTED ((class_type != zend_ce_parse_error && class_type != zend_ce_compile_error )
241
240
|| !(filename = zend_get_compiled_filename ()))) {
242
241
ZVAL_STRING (& tmp , zend_get_executed_filename ());
243
- zend_update_property_ex (base_ce , & obj , ZSTR_KNOWN (ZEND_STR_FILE ), & tmp );
242
+ zend_update_property_ex (base_ce , object , ZSTR_KNOWN (ZEND_STR_FILE ), & tmp );
244
243
zval_ptr_dtor (& tmp );
245
244
ZVAL_LONG (& tmp , zend_get_executed_lineno ());
246
- zend_update_property_ex (base_ce , & obj , ZSTR_KNOWN (ZEND_STR_LINE ), & tmp );
245
+ zend_update_property_ex (base_ce , object , ZSTR_KNOWN (ZEND_STR_LINE ), & tmp );
247
246
} else {
248
247
ZVAL_STR (& tmp , filename );
249
- zend_update_property_ex (base_ce , & obj , ZSTR_KNOWN (ZEND_STR_FILE ), & tmp );
248
+ zend_update_property_ex (base_ce , object , ZSTR_KNOWN (ZEND_STR_FILE ), & tmp );
250
249
ZVAL_LONG (& tmp , zend_get_compiled_lineno ());
251
- zend_update_property_ex (base_ce , & obj , ZSTR_KNOWN (ZEND_STR_LINE ), & tmp );
250
+ zend_update_property_ex (base_ce , object , ZSTR_KNOWN (ZEND_STR_LINE ), & tmp );
252
251
}
253
- zend_update_property_ex (base_ce , & obj , ZSTR_KNOWN (ZEND_STR_TRACE ), & trace );
252
+ zend_update_property_ex (base_ce , object , ZSTR_KNOWN (ZEND_STR_TRACE ), & trace );
254
253
255
254
return object ;
256
255
}
@@ -293,16 +292,16 @@ ZEND_METHOD(Exception, __construct)
293
292
294
293
if (message ) {
295
294
ZVAL_STR (& tmp , message );
296
- zend_update_property_ex (base_ce , object , ZSTR_KNOWN (ZEND_STR_MESSAGE ), & tmp );
295
+ zend_update_property_ex (base_ce , Z_OBJ_P ( object ) , ZSTR_KNOWN (ZEND_STR_MESSAGE ), & tmp );
297
296
}
298
297
299
298
if (code ) {
300
299
ZVAL_LONG (& tmp , code );
301
- zend_update_property_ex (base_ce , object , ZSTR_KNOWN (ZEND_STR_CODE ), & tmp );
300
+ zend_update_property_ex (base_ce , Z_OBJ_P ( object ) , ZSTR_KNOWN (ZEND_STR_CODE ), & tmp );
302
301
}
303
302
304
303
if (previous ) {
305
- zend_update_property_ex (base_ce , object , ZSTR_KNOWN (ZEND_STR_PREVIOUS ), previous );
304
+ zend_update_property_ex (base_ce , Z_OBJ_P ( object ) , ZSTR_KNOWN (ZEND_STR_PREVIOUS ), previous );
306
305
}
307
306
}
308
307
/* }}} */
@@ -345,31 +344,31 @@ ZEND_METHOD(ErrorException, __construct)
345
344
346
345
if (message ) {
347
346
ZVAL_STR_COPY (& tmp , message );
348
- zend_update_property_ex (zend_ce_exception , object , ZSTR_KNOWN (ZEND_STR_MESSAGE ), & tmp );
347
+ zend_update_property_ex (zend_ce_exception , Z_OBJ_P ( object ) , ZSTR_KNOWN (ZEND_STR_MESSAGE ), & tmp );
349
348
zval_ptr_dtor (& tmp );
350
349
}
351
350
352
351
if (code ) {
353
352
ZVAL_LONG (& tmp , code );
354
- zend_update_property_ex (zend_ce_exception , object , ZSTR_KNOWN (ZEND_STR_CODE ), & tmp );
353
+ zend_update_property_ex (zend_ce_exception , Z_OBJ_P ( object ) , ZSTR_KNOWN (ZEND_STR_CODE ), & tmp );
355
354
}
356
355
357
356
if (previous ) {
358
- zend_update_property_ex (zend_ce_exception , object , ZSTR_KNOWN (ZEND_STR_PREVIOUS ), previous );
357
+ zend_update_property_ex (zend_ce_exception , Z_OBJ_P ( object ) , ZSTR_KNOWN (ZEND_STR_PREVIOUS ), previous );
359
358
}
360
359
361
360
ZVAL_LONG (& tmp , severity );
362
- zend_update_property_ex (zend_ce_exception , object , ZSTR_KNOWN (ZEND_STR_SEVERITY ), & tmp );
361
+ zend_update_property_ex (zend_ce_exception , Z_OBJ_P ( object ) , ZSTR_KNOWN (ZEND_STR_SEVERITY ), & tmp );
363
362
364
363
if (argc >= 4 ) {
365
364
ZVAL_STR_COPY (& tmp , filename );
366
- zend_update_property_ex (zend_ce_exception , object , ZSTR_KNOWN (ZEND_STR_FILE ), & tmp );
365
+ zend_update_property_ex (zend_ce_exception , Z_OBJ_P ( object ) , ZSTR_KNOWN (ZEND_STR_FILE ), & tmp );
367
366
zval_ptr_dtor (& tmp );
368
367
if (argc < 5 ) {
369
368
lineno = 0 ; /* invalidate lineno */
370
369
}
371
370
ZVAL_LONG (& tmp , lineno );
372
- zend_update_property_ex (zend_ce_exception , object , ZSTR_KNOWN (ZEND_STR_LINE ), & tmp );
371
+ zend_update_property_ex (zend_ce_exception , Z_OBJ_P ( object ) , ZSTR_KNOWN (ZEND_STR_LINE ), & tmp );
373
372
}
374
373
}
375
374
/* }}} */
@@ -726,7 +725,7 @@ ZEND_METHOD(Exception, __toString)
726
725
/* We store the result in the private property string so we can access
727
726
* the result in uncaught exception handlers without memleaks. */
728
727
ZVAL_STR (& tmp , str );
729
- zend_update_property_ex (base_ce , exception , ZSTR_KNOWN (ZEND_STR_STRING ), & tmp );
728
+ zend_update_property_ex (base_ce , Z_OBJ_P ( exception ) , ZSTR_KNOWN (ZEND_STR_STRING ), & tmp );
730
729
731
730
RETURN_STR (str );
732
731
}
@@ -847,11 +846,11 @@ static zend_object *zend_throw_exception_zstr(zend_class_entry *exception_ce, ze
847
846
848
847
if (message ) {
849
848
ZVAL_STR (& tmp , message );
850
- zend_update_property_ex (exception_ce , & ex , ZSTR_KNOWN (ZEND_STR_MESSAGE ), & tmp );
849
+ zend_update_property_ex (exception_ce , Z_OBJ ( ex ) , ZSTR_KNOWN (ZEND_STR_MESSAGE ), & tmp );
851
850
}
852
851
if (code ) {
853
852
ZVAL_LONG (& tmp , code );
854
- zend_update_property_ex (exception_ce , & ex , ZSTR_KNOWN (ZEND_STR_CODE ), & tmp );
853
+ zend_update_property_ex (exception_ce , Z_OBJ ( ex ) , ZSTR_KNOWN (ZEND_STR_CODE ), & tmp );
855
854
}
856
855
857
856
zend_throw_exception_internal (Z_OBJ (ex ));
@@ -888,11 +887,10 @@ ZEND_API ZEND_COLD zend_object *zend_throw_exception_ex(zend_class_entry *except
888
887
889
888
ZEND_API ZEND_COLD zend_object * zend_throw_error_exception (zend_class_entry * exception_ce , zend_string * message , zend_long code , int severity ) /* {{{ */
890
889
{
891
- zval ex , tmp ;
890
+ zval tmp ;
892
891
zend_object * obj = zend_throw_exception_zstr (exception_ce , message , code );
893
- ZVAL_OBJ (& ex , obj );
894
892
ZVAL_LONG (& tmp , severity );
895
- zend_update_property_ex (zend_ce_error_exception , & ex , ZSTR_KNOWN (ZEND_STR_SEVERITY ), & tmp );
893
+ zend_update_property_ex (zend_ce_error_exception , obj , ZSTR_KNOWN (ZEND_STR_SEVERITY ), & tmp );
896
894
return obj ;
897
895
}
898
896
/* }}} */
@@ -935,12 +933,12 @@ ZEND_API ZEND_COLD int zend_exception_error(zend_object *ex, int severity) /* {{
935
933
zend_string * str , * file = NULL ;
936
934
zend_long line = 0 ;
937
935
938
- zend_call_known_instance_method_with_0_params (ex -> ce -> __tostring , Z_OBJ ( exception ) , & tmp );
936
+ zend_call_known_instance_method_with_0_params (ex -> ce -> __tostring , ex , & tmp );
939
937
if (!EG (exception )) {
940
938
if (Z_TYPE (tmp ) != IS_STRING ) {
941
939
zend_error (E_WARNING , "%s::__toString() must return a string" , ZSTR_VAL (ce_exception -> name ));
942
940
} else {
943
- zend_update_property_ex (i_get_exception_base (ex ), & exception , ZSTR_KNOWN (ZEND_STR_STRING ), & tmp );
941
+ zend_update_property_ex (i_get_exception_base (ex ), ex , ZSTR_KNOWN (ZEND_STR_STRING ), & tmp );
944
942
}
945
943
}
946
944
zval_ptr_dtor (& tmp );
0 commit comments