summaryrefslogtreecommitdiff
path: root/Zend/zend_interfaces.c
diff options
context:
space:
mode:
authorNikita Popov <nikita.ppv@gmail.com>2019-05-23 10:41:27 +0200
committerNikita Popov <nikita.ppv@gmail.com>2019-05-23 10:41:27 +0200
commitc3ee12e7868dbc08da36e780eee80a9d3c2e30d1 (patch)
tree5b3b13a66aa54acab89246a8ae3908c021eb0cf7 /Zend/zend_interfaces.c
parentb63cb6742123e9fe125cd4bc6c7ac0bdddf0f3b2 (diff)
parent64918c770282c0f60b407e8de3201a6b68c88e78 (diff)
downloadphp-git-c3ee12e7868dbc08da36e780eee80a9d3c2e30d1.tar.gz
Merge branch 'PHP-7.4'
Diffstat (limited to 'Zend/zend_interfaces.c')
-rw-r--r--Zend/zend_interfaces.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/Zend/zend_interfaces.c b/Zend/zend_interfaces.c
index 4c9bb28310..90cceec38e 100644
--- a/Zend/zend_interfaces.c
+++ b/Zend/zend_interfaces.c
@@ -291,7 +291,7 @@ static int zend_implement_traversable(zend_class_entry *interface, zend_class_en
return SUCCESS;
}
if (class_type->num_interfaces) {
- ZEND_ASSERT(class_type->ce_flags & ZEND_ACC_LINKED);
+ ZEND_ASSERT(class_type->ce_flags & (ZEND_ACC_LINKED|ZEND_ACC_LINKING_IN_PROGRESS));
for (i = 0; i < class_type->num_interfaces; i++) {
if (class_type->interfaces[i] == zend_ce_aggregate || class_type->interfaces[i] == zend_ce_iterator) {
return SUCCESS;
@@ -321,7 +321,7 @@ static int zend_implement_aggregate(zend_class_entry *interface, zend_class_entr
} else if (class_type->get_iterator != zend_user_it_get_new_iterator) {
/* c-level get_iterator cannot be changed (exception being only Traversable is implemented) */
if (class_type->num_interfaces) {
- ZEND_ASSERT(class_type->ce_flags & ZEND_ACC_LINKED);
+ ZEND_ASSERT(class_type->ce_flags & (ZEND_ACC_LINKED|ZEND_ACC_LINKING_IN_PROGRESS));
for (i = 0; i < class_type->num_interfaces; i++) {
if (class_type->interfaces[i] == zend_ce_iterator) {
zend_error_noreturn(E_ERROR, "Class %s cannot implement both %s and %s at the same time",