@@ -329,42 +329,51 @@ ZEND_COLD ZEND_METHOD(Exception, __clone)
329329}
330330/* }}} */ 
331331
332- /* {{{ Exception constructor */ 
333- ZEND_METHOD (Exception , __construct )
332+ ZEND_API  zend_result  zend_update_exception_properties (INTERNAL_FUNCTION_PARAMETERS , zend_string  * message , zend_long  code , zval  * previous )
334333{
335- 	zend_string  * message  =  NULL ;
336- 	zend_long    code  =  0 ;
337- 	zval   tmp , * object , * previous  =  NULL ;
338- 
339- 	object  =  ZEND_THIS ;
340- 
341- 	if  (zend_parse_parameters (ZEND_NUM_ARGS (), "|SlO!" , & message , & code , & previous , zend_ce_throwable ) ==  FAILURE ) {
342- 		RETURN_THROWS ();
343- 	}
334+ 	zval  tmp , * object  =  ZEND_THIS ;
344335
345336	if  (message ) {
346337		ZVAL_STR_COPY (& tmp , message );
347338		zend_update_property_num_checked (NULL , Z_OBJ_P (object ), ZEND_EXCEPTION_MESSAGE_OFF , ZSTR_KNOWN (ZEND_STR_MESSAGE ), & tmp );
348339		if  (UNEXPECTED (EG (exception ))) {
349- 			RETURN_THROWS () ;
340+ 			return   FAILURE ;
350341		}
351342	}
352343
353344	if  (code ) {
354345		ZVAL_LONG (& tmp , code );
355346		zend_update_property_num_checked (NULL , Z_OBJ_P (object ), ZEND_EXCEPTION_CODE_OFF , ZSTR_KNOWN (ZEND_STR_CODE ), & tmp );
356347		if  (UNEXPECTED (EG (exception ))) {
357- 			RETURN_THROWS () ;
348+ 			return   FAILURE ;
358349		}
359350	}
360351
361352	if  (previous ) {
362353		Z_ADDREF_P (previous );
363354		zend_update_property_num_checked (zend_ce_exception , Z_OBJ_P (object ), ZEND_EXCEPTION_PREVIOUS_OFF , ZSTR_KNOWN (ZEND_STR_PREVIOUS ), previous );
364355		if  (UNEXPECTED (EG (exception ))) {
365- 			RETURN_THROWS () ;
356+ 			return   FAILURE ;
366357		}
367358	}
359+ 
360+ 	return  SUCCESS ;
361+ }
362+ 
363+ /* {{{ Exception constructor */ 
364+ ZEND_METHOD (Exception , __construct )
365+ {
366+ 	zend_string  * message  =  NULL ;
367+ 	zend_long    code  =  0 ;
368+ 	zval  * previous  =  NULL ;
369+ 
370+ 	if  (zend_parse_parameters (ZEND_NUM_ARGS (), "|SlO!" , & message , & code , & previous , zend_ce_throwable ) ==  FAILURE ) {
371+ 		RETURN_THROWS ();
372+ 	}
373+ 
374+ 	if  (zend_update_exception_properties (INTERNAL_FUNCTION_PARAM_PASSTHRU , message , code , previous ) ==  FAILURE ) {
375+ 		RETURN_THROWS ();
376+ 	}
368377}
369378/* }}} */ 
370379
@@ -401,28 +410,8 @@ ZEND_METHOD(ErrorException, __construct)
401410
402411	object  =  ZEND_THIS ;
403412
404- 	if  (message ) {
405- 		ZVAL_STR_COPY (& tmp , message );
406- 		zend_update_property_num_checked (NULL , Z_OBJ_P (object ), ZEND_EXCEPTION_MESSAGE_OFF , ZSTR_KNOWN (ZEND_STR_MESSAGE ), & tmp );
407- 		if  (UNEXPECTED (EG (exception ))) {
408- 			RETURN_THROWS ();
409- 		}
410- 	}
411- 
412- 	if  (code ) {
413- 		ZVAL_LONG (& tmp , code );
414- 		zend_update_property_num_checked (NULL , Z_OBJ_P (object ), ZEND_EXCEPTION_CODE_OFF , ZSTR_KNOWN (ZEND_STR_CODE ), & tmp );
415- 		if  (UNEXPECTED (EG (exception ))) {
416- 			RETURN_THROWS ();
417- 		}
418- 	}
419- 
420- 	if  (previous ) {
421- 		Z_ADDREF_P (previous );
422- 		zend_update_property_num_checked (zend_ce_exception , Z_OBJ_P (object ), ZEND_EXCEPTION_PREVIOUS_OFF , ZSTR_KNOWN (ZEND_STR_PREVIOUS ), previous );
423- 		if  (UNEXPECTED (EG (exception ))) {
424- 			RETURN_THROWS ();
425- 		}
413+ 	if  (zend_update_exception_properties (INTERNAL_FUNCTION_PARAM_PASSTHRU , message , code , previous ) ==  FAILURE ) {
414+ 		RETURN_THROWS ();
426415	}
427416
428417	ZVAL_LONG (& tmp , severity );
0 commit comments