diff options
Diffstat (limited to 'ext/spl/spl_functions.c')
-rw-r--r-- | ext/spl/spl_functions.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/ext/spl/spl_functions.c b/ext/spl/spl_functions.c index ceb5330a9f..6c04bb3cd9 100644 --- a/ext/spl/spl_functions.c +++ b/ext/spl/spl_functions.c @@ -94,8 +94,11 @@ void spl_add_interfaces(zval *list, zend_class_entry * pce, int allow, int ce_fl { uint32_t num_interfaces; - for (num_interfaces = 0; num_interfaces < pce->num_interfaces; num_interfaces++) { - spl_add_class_name(list, pce->interfaces[num_interfaces], allow, ce_flags); + if (pce->num_interfaces) { + ZEND_ASSERT(!(pce->ce_flags & ZEND_ACC_UNRESOLVED_INTERFACES)); + for (num_interfaces = 0; num_interfaces < pce->num_interfaces; num_interfaces++) { + spl_add_class_name(list, pce->interfaces[num_interfaces], allow, ce_flags); + } } } /* }}} */ |