@@ -4343,6 +4343,16 @@ ZEND_METHOD(ReflectionClass, getAttributes)
4343
4343
}
4344
4344
/* }}} */
4345
4345
4346
+ ZEND_METHOD (ReflectionClass , mayBeCyclic )
4347
+ {
4348
+ reflection_object * intern ;
4349
+ zend_class_entry * ce ;
4350
+
4351
+ GET_REFLECTION_OBJECT_PTR (ce );
4352
+
4353
+ RETURN_BOOL (ce -> ce_flags & ZEND_ACC_MAY_BE_CYCLIC );
4354
+ }
4355
+
4346
4356
/* {{{ Returns the class' constructor if there is one, NULL otherwise */
4347
4357
ZEND_METHOD (ReflectionClass , getConstructor )
4348
4358
{
@@ -7682,91 +7692,113 @@ PHP_MINIT_FUNCTION(reflection) /* {{{ */
7682
7692
7683
7693
reflection_function_abstract_ptr = register_class_ReflectionFunctionAbstract (reflector_ptr );
7684
7694
reflection_function_abstract_ptr -> default_object_handlers = & reflection_object_handlers ;
7695
+ reflection_function_abstract_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7685
7696
reflection_function_abstract_ptr -> create_object = reflection_objects_new ;
7686
7697
7687
7698
reflection_function_ptr = register_class_ReflectionFunction (reflection_function_abstract_ptr );
7688
7699
reflection_function_ptr -> create_object = reflection_objects_new ;
7689
7700
reflection_function_ptr -> default_object_handlers = & reflection_object_handlers ;
7701
+ reflection_function_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7690
7702
7691
7703
reflection_generator_ptr = register_class_ReflectionGenerator ();
7692
7704
reflection_generator_ptr -> create_object = reflection_objects_new ;
7693
7705
reflection_generator_ptr -> default_object_handlers = & reflection_object_handlers ;
7706
+ reflection_generator_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7694
7707
7695
7708
reflection_parameter_ptr = register_class_ReflectionParameter (reflector_ptr );
7696
7709
reflection_parameter_ptr -> create_object = reflection_objects_new ;
7697
7710
reflection_parameter_ptr -> default_object_handlers = & reflection_object_handlers ;
7711
+ reflection_parameter_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7698
7712
7699
7713
reflection_type_ptr = register_class_ReflectionType (zend_ce_stringable );
7700
7714
reflection_type_ptr -> create_object = reflection_objects_new ;
7701
7715
reflection_type_ptr -> default_object_handlers = & reflection_object_handlers ;
7716
+ reflection_type_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7702
7717
7703
7718
reflection_named_type_ptr = register_class_ReflectionNamedType (reflection_type_ptr );
7704
7719
reflection_named_type_ptr -> create_object = reflection_objects_new ;
7705
7720
reflection_named_type_ptr -> default_object_handlers = & reflection_object_handlers ;
7721
+ reflection_named_type_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7706
7722
7707
7723
reflection_union_type_ptr = register_class_ReflectionUnionType (reflection_type_ptr );
7708
7724
reflection_union_type_ptr -> create_object = reflection_objects_new ;
7709
7725
reflection_union_type_ptr -> default_object_handlers = & reflection_object_handlers ;
7726
+ reflection_union_type_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7710
7727
7711
7728
reflection_intersection_type_ptr = register_class_ReflectionIntersectionType (reflection_type_ptr );
7712
7729
reflection_intersection_type_ptr -> create_object = reflection_objects_new ;
7713
7730
reflection_intersection_type_ptr -> default_object_handlers = & reflection_object_handlers ;
7731
+ reflection_intersection_type_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7714
7732
7715
7733
reflection_method_ptr = register_class_ReflectionMethod (reflection_function_abstract_ptr );
7716
7734
reflection_method_ptr -> create_object = reflection_objects_new ;
7717
7735
reflection_method_ptr -> default_object_handlers = & reflection_object_handlers ;
7736
+ reflection_method_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7718
7737
7719
7738
reflection_class_ptr = register_class_ReflectionClass (reflector_ptr );
7720
7739
reflection_class_ptr -> create_object = reflection_objects_new ;
7721
7740
reflection_class_ptr -> default_object_handlers = & reflection_object_handlers ;
7741
+ reflection_class_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7722
7742
7723
7743
reflection_object_ptr = register_class_ReflectionObject (reflection_class_ptr );
7724
7744
reflection_object_ptr -> create_object = reflection_objects_new ;
7725
7745
reflection_object_ptr -> default_object_handlers = & reflection_object_handlers ;
7746
+ reflection_object_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7726
7747
7727
7748
reflection_property_ptr = register_class_ReflectionProperty (reflector_ptr );
7728
7749
reflection_property_ptr -> create_object = reflection_objects_new ;
7729
7750
reflection_property_ptr -> default_object_handlers = & reflection_object_handlers ;
7751
+ reflection_property_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7730
7752
7731
7753
reflection_class_constant_ptr = register_class_ReflectionClassConstant (reflector_ptr );
7732
7754
reflection_class_constant_ptr -> create_object = reflection_objects_new ;
7733
7755
reflection_class_constant_ptr -> default_object_handlers = & reflection_object_handlers ;
7756
+ reflection_class_constant_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7734
7757
7735
7758
reflection_extension_ptr = register_class_ReflectionExtension (reflector_ptr );
7736
7759
reflection_extension_ptr -> create_object = reflection_objects_new ;
7737
7760
reflection_extension_ptr -> default_object_handlers = & reflection_object_handlers ;
7761
+ reflection_extension_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7738
7762
7739
7763
reflection_zend_extension_ptr = register_class_ReflectionZendExtension (reflector_ptr );
7740
7764
reflection_zend_extension_ptr -> create_object = reflection_objects_new ;
7741
7765
reflection_zend_extension_ptr -> default_object_handlers = & reflection_object_handlers ;
7766
+ reflection_zend_extension_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7742
7767
7743
7768
reflection_reference_ptr = register_class_ReflectionReference ();
7744
7769
reflection_reference_ptr -> create_object = reflection_objects_new ;
7745
7770
reflection_reference_ptr -> default_object_handlers = & reflection_object_handlers ;
7771
+ reflection_reference_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7746
7772
7747
7773
reflection_attribute_ptr = register_class_ReflectionAttribute (reflector_ptr );
7748
7774
reflection_attribute_ptr -> create_object = reflection_objects_new ;
7749
7775
reflection_attribute_ptr -> default_object_handlers = & reflection_object_handlers ;
7776
+ reflection_attribute_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7750
7777
7751
7778
reflection_enum_ptr = register_class_ReflectionEnum (reflection_class_ptr );
7752
7779
reflection_enum_ptr -> create_object = reflection_objects_new ;
7753
7780
reflection_enum_ptr -> default_object_handlers = & reflection_object_handlers ;
7781
+ reflection_enum_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7754
7782
7755
7783
reflection_enum_unit_case_ptr = register_class_ReflectionEnumUnitCase (reflection_class_constant_ptr );
7756
7784
reflection_enum_unit_case_ptr -> create_object = reflection_objects_new ;
7757
7785
reflection_enum_unit_case_ptr -> default_object_handlers = & reflection_object_handlers ;
7786
+ reflection_enum_unit_case_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7758
7787
7759
7788
reflection_enum_backed_case_ptr = register_class_ReflectionEnumBackedCase (reflection_enum_unit_case_ptr );
7760
7789
reflection_enum_backed_case_ptr -> create_object = reflection_objects_new ;
7761
7790
reflection_enum_backed_case_ptr -> default_object_handlers = & reflection_object_handlers ;
7791
+ reflection_enum_backed_case_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7762
7792
7763
7793
reflection_fiber_ptr = register_class_ReflectionFiber ();
7764
7794
reflection_fiber_ptr -> create_object = reflection_objects_new ;
7765
7795
reflection_fiber_ptr -> default_object_handlers = & reflection_object_handlers ;
7796
+ reflection_fiber_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7766
7797
7767
7798
reflection_constant_ptr = register_class_ReflectionConstant (reflector_ptr );
7768
7799
reflection_constant_ptr -> create_object = reflection_objects_new ;
7769
7800
reflection_constant_ptr -> default_object_handlers = & reflection_object_handlers ;
7801
+ reflection_constant_ptr -> ce_flags |= ZEND_ACC_MAY_BE_CYCLIC ;
7770
7802
7771
7803
reflection_property_hook_type_ptr = register_class_PropertyHookType ();
7772
7804
0 commit comments