diff options
Diffstat (limited to 'Zend/zend_opcode.c')
-rw-r--r-- | Zend/zend_opcode.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index a0fd5a71a6..451104aaf0 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -262,7 +262,15 @@ ZEND_API void destroy_zend_class(zval *zv) } ZEND_HASH_FOREACH_END(); } zend_hash_destroy(&ce->constants_table); - if (ce->num_interfaces > 0 && ce->interfaces) { + if (ce->num_interfaces > 0) { + if (ce->ce_flags & ZEND_ACC_UNRESOLVED_INTERFACES) { + uint32_t i; + + for (i = 0; i < ce->num_interfaces; i++) { + zend_string_release_ex(ce->interface_names[i].name, 0); + zend_string_release_ex(ce->interface_names[i].lc_name, 0); + } + } efree(ce->interfaces); } if (ce->info.user.doc_comment) { |