@@ -1258,7 +1258,7 @@ PHPAPI void zend_reflection_class_factory(zend_class_entry *ce, zval *object)
12581258}
12591259/* }}} */
12601260
1261- PHPAPI void zend_reflection_enum_factory (zend_class_entry * ce , zval * object )
1261+ static void zend_reflection_enum_factory (zend_class_entry * ce , zval * object )
12621262{
12631263 reflection_object * intern ;
12641264
@@ -6549,15 +6549,16 @@ ZEND_METHOD(ReflectionAttribute, newInstance)
65496549ZEND_METHOD (ReflectionEnum , __construct )
65506550{
65516551 reflection_class_object_ctor (INTERNAL_FUNCTION_PARAM_PASSTHRU , 0 );
6552+ if (EG (exception )) {
6553+ RETURN_THROWS ();
6554+ }
65526555
65536556 reflection_object * intern ;
65546557 zend_class_entry * ce ;
65556558 GET_REFLECTION_OBJECT_PTR (ce );
65566559
65576560 if (!(ce -> ce_flags & ZEND_ACC_ENUM )) {
6558- if (!EG (exception )) {
6559- zend_throw_exception_ex (reflection_exception_ptr , -1 , "Class \"%s\" is not an enum" , ZSTR_VAL (ce -> name ));
6560- }
6561+ zend_throw_exception_ex (reflection_exception_ptr , -1 , "Class \"%s\" is not an enum" , ZSTR_VAL (ce -> name ));
65616562 RETURN_THROWS ();
65626563 }
65636564}
@@ -6660,22 +6661,23 @@ ZEND_METHOD(ReflectionEnum, getBackingType)
66606661ZEND_METHOD (ReflectionEnumUnitCase , __construct )
66616662{
66626663 ZEND_MN (ReflectionClassConstant___construct )(INTERNAL_FUNCTION_PARAM_PASSTHRU );
6664+ if (EG (exception )) {
6665+ RETURN_THROWS ();
6666+ }
66636667
66646668 reflection_object * intern ;
66656669 zend_class_constant * ref ;
66666670
66676671 GET_REFLECTION_OBJECT_PTR (ref );
66686672
66696673 if (!(Z_ACCESS_FLAGS (ref -> value ) & ZEND_CLASS_CONST_IS_CASE )) {
6670- if (!EG (exception )) {
6671- zval * case_name = reflection_prop_name (ZEND_THIS );
6672- zend_throw_exception_ex (reflection_exception_ptr , 0 , "Constant %s::%s is not a case" , ZSTR_VAL (ref -> ce -> name ), Z_STRVAL_P (case_name ));
6673- }
6674+ zval * case_name = reflection_prop_name (ZEND_THIS );
6675+ zend_throw_exception_ex (reflection_exception_ptr , 0 , "Constant %s::%s is not a case" , ZSTR_VAL (ref -> ce -> name ), Z_STRVAL_P (case_name ));
66746676 RETURN_THROWS ();
66756677 }
66766678}
66776679
6678- ZEND_METHOD (ReflectionEnumBackedCase , getBackingValue )
6680+ ZEND_METHOD (ReflectionEnumUnitCase , getEnum )
66796681{
66806682 reflection_object * intern ;
66816683 zend_class_constant * ref ;
@@ -6685,45 +6687,46 @@ ZEND_METHOD(ReflectionEnumBackedCase, getBackingValue)
66856687 }
66866688 GET_REFLECTION_OBJECT_PTR (ref );
66876689
6688- if (Z_TYPE (ref -> value ) == IS_CONSTANT_AST ) {
6689- zval_update_constant_ex (& ref -> value , ref -> ce );
6690- }
6691-
6692- ZEND_ASSERT (intern -> ce -> enum_backing_type != IS_UNDEF );
6693- zval * member_p = zend_enum_fetch_case_value (Z_OBJ (ref -> value ));
6694-
6695- ZVAL_COPY_OR_DUP (return_value , member_p );
6690+ zend_reflection_enum_factory (ref -> ce , return_value );
66966691}
66976692
6698- ZEND_METHOD (ReflectionEnumUnitCase , getEnum )
6693+ ZEND_METHOD (ReflectionEnumBackedCase , __construct )
66996694{
6695+ ZEND_MN (ReflectionEnumUnitCase___construct )(INTERNAL_FUNCTION_PARAM_PASSTHRU );
6696+ if (EG (exception )) {
6697+ RETURN_THROWS ();
6698+ }
6699+
67006700 reflection_object * intern ;
67016701 zend_class_constant * ref ;
67026702
6703- if (zend_parse_parameters_none () == FAILURE ) {
6704- RETURN_THROWS ();
6705- }
67066703 GET_REFLECTION_OBJECT_PTR (ref );
67076704
6708- zend_reflection_enum_factory (ref -> ce , return_value );
6705+ if (ref -> ce -> enum_backing_type == IS_UNDEF ) {
6706+ zval * case_name = reflection_prop_name (ZEND_THIS );
6707+ zend_throw_exception_ex (reflection_exception_ptr , 0 , "Enum case %s::%s is not a backed case" , ZSTR_VAL (ref -> ce -> name ), Z_STRVAL_P (case_name ));
6708+ RETURN_THROWS ();
6709+ }
67096710}
67106711
6711- ZEND_METHOD (ReflectionEnumBackedCase , __construct )
6712+ ZEND_METHOD (ReflectionEnumBackedCase , getBackingValue )
67126713{
6713- ZEND_MN (ReflectionEnumUnitCase___construct )(INTERNAL_FUNCTION_PARAM_PASSTHRU );
6714-
67156714 reflection_object * intern ;
67166715 zend_class_constant * ref ;
67176716
6717+ if (zend_parse_parameters_none () == FAILURE ) {
6718+ RETURN_THROWS ();
6719+ }
67186720 GET_REFLECTION_OBJECT_PTR (ref );
67196721
6720- if (ref -> ce -> enum_backing_type == IS_UNDEF ) {
6721- if (!EG (exception )) {
6722- zval * case_name = reflection_prop_name (ZEND_THIS );
6723- zend_throw_exception_ex (reflection_exception_ptr , 0 , "Enum case %s::%s is not a backed case" , ZSTR_VAL (ref -> ce -> name ), Z_STRVAL_P (case_name ));
6724- }
6725- RETURN_THROWS ();
6722+ if (Z_TYPE (ref -> value ) == IS_CONSTANT_AST ) {
6723+ zval_update_constant_ex (& ref -> value , ref -> ce );
67266724 }
6725+
6726+ ZEND_ASSERT (intern -> ce -> enum_backing_type != IS_UNDEF );
6727+ zval * member_p = zend_enum_fetch_case_value (Z_OBJ (ref -> value ));
6728+
6729+ ZVAL_COPY_OR_DUP (return_value , member_p );
67276730}
67286731
67296732/* {{{ _reflection_write_property */
0 commit comments