@@ -3481,17 +3481,13 @@ public function getRegistration(array $allConstInfos): string
34813481
34823482 $ code .= "{ \n" ;
34833483
3484- $ flags = generateVersionDependentFlagCode ("%s " , $ this ->getFlagsByPhpVersion (), $ this ->phpVersionIdMinimumCompatibility );
3485-
34863484 $ classMethods = ($ this ->funcInfos === []) ? 'NULL ' : "class_ {$ escapedName }_methods " ;
34873485 if ($ this ->type === "enum " ) {
34883486 $ name = addslashes ((string ) $ this ->name );
34893487 $ backingType = $ this ->enumBackingType
34903488 ? $ this ->enumBackingType ->toTypeCode () : "IS_UNDEF " ;
34913489 $ code .= "\tzend_class_entry *class_entry = zend_register_internal_enum( \"$ name \", $ backingType, $ classMethods); \n" ;
3492- if ($ flags !== "" ) {
3493- $ code .= "\tclass_entry->ce_flags |= $ flags \n" ;
3494- }
3490+ $ code .= generateVersionDependentFlagCode ("\tclass_entry->ce_flags = %s; \n" , $ this ->getFlagsByPhpVersion (), $ this ->phpVersionIdMinimumCompatibility );
34953491 } else {
34963492 $ code .= "\tzend_class_entry ce, *class_entry; \n\n" ;
34973493 if (count ($ this ->name ->getParts ()) > 1 ) {
@@ -3508,22 +3504,25 @@ public function getRegistration(array $allConstInfos): string
35083504 $ code .= "#if (PHP_VERSION_ID >= " . PHP_84_VERSION_ID . ") \n" ;
35093505 }
35103506
3511- $ code .= "\tclass_entry = zend_register_internal_class_with_flags(&ce, " . (isset ($ this ->extends [0 ]) ? "class_entry_ " . str_replace ("\\" , "_ " , $ this ->extends [0 ]->toString ()) : "NULL " ) . ", " . ($ flags ?: 0 ) . "); \n" ;
3507+ $ template = "\tclass_entry = zend_register_internal_class_with_flags(&ce, " . (isset ($ this ->extends [0 ]) ? "class_entry_ " . str_replace ("\\" , "_ " , $ this ->extends [0 ]->toString ()) : "NULL " ) . ", %s); \n" ;
3508+ $ entries = generateVersionDependentFlagCode ($ template , $ this ->getFlagsByPhpVersion (), $ this ->phpVersionIdMinimumCompatibility ? max ($ this ->phpVersionIdMinimumCompatibility , PHP_84_VERSION_ID ) : null );
3509+ if ($ entries !== '' ) {
3510+ $ code .= $ entries ;
3511+ } else {
3512+ $ code .= sprintf ($ template , "0 " );
3513+ }
35123514
35133515 if (!$ php84MinimumCompatibility ) {
35143516 $ code .= "#else \n" ;
35153517
35163518 $ code .= "\tclass_entry = zend_register_internal_class_ex(&ce, " . (isset ($ this ->extends [0 ]) ? "class_entry_ " . str_replace ("\\" , "_ " , $ this ->extends [0 ]->toString ()) : "NULL " ) . "); \n" ;
3517- if ($ flags !== "" ) {
3518- $ code .= "\tclass_entry->ce_flags |= $ flags; \n" ;
3519- }
3519+ $ code .= generateVersionDependentFlagCode ("\tclass_entry->ce_flags |= %s; \n" , $ this ->getFlagsByPhpVersion (), $ this ->phpVersionIdMinimumCompatibility );
35203520 $ code .= "#endif \n" ;
35213521 }
35223522 } else {
35233523 $ code .= "\tclass_entry = zend_register_internal_interface(&ce); \n" ;
3524- if ($ flags !== "" ) {
3525- $ code .= "\tclass_entry->ce_flags |= $ flags \n" ;
3526- }
3524+ $ code .= generateVersionDependentFlagCode ("\tclass_entry->ce_flags |= %s; \n" , $ this ->getFlagsByPhpVersion (), $ this ->phpVersionIdMinimumCompatibility );
3525+
35273526 }
35283527 }
35293528
0 commit comments