Allow arbitrary const expressions in backed enums

Closes GH-7821
Closes GH-8190
Closes GH-8418
This commit is contained in:
Ilija Tovilo 2022-03-10 22:35:01 +01:00
parent 5a855ee8d6
commit ddc0b490f7
No known key found for this signature in database
GPG key ID: A4F5D403F118200A
23 changed files with 287 additions and 144 deletions

View file

@ -330,9 +330,6 @@ ZEND_API void destroy_zend_class(zval *zv)
if (ce->attributes) {
zend_hash_release(ce->attributes);
}
if (ce->backed_enum_table) {
zend_hash_release(ce->backed_enum_table);
}
if (ce->num_interfaces > 0 && !(ce->ce_flags & ZEND_ACC_RESOLVED_INTERFACES)) {
uint32_t i;
@ -403,6 +400,9 @@ ZEND_API void destroy_zend_class(zval *zv)
if (ce->num_interfaces > 0 && (ce->ce_flags & ZEND_ACC_RESOLVED_INTERFACES)) {
efree(ce->interfaces);
}
if (ce->backed_enum_table) {
zend_hash_release(ce->backed_enum_table);
}
break;
case ZEND_INTERNAL_CLASS:
if (ce->backed_enum_table) {