diff options
-rw-r--r-- | Zend/tests/bug76754.phpt | 18 | ||||
-rw-r--r-- | Zend/zend_opcode.c | 2 |
2 files changed, 19 insertions, 1 deletions
diff --git a/Zend/tests/bug76754.phpt b/Zend/tests/bug76754.phpt new file mode 100644 index 0000000000..424f1fbffc --- /dev/null +++ b/Zend/tests/bug76754.phpt @@ -0,0 +1,18 @@ +--TEST-- +Bug #76754 (parent private constant in extends class memory leak) +--INI-- +opcache.enable=0 +opcache.enable_cli=0 +--FILE-- +<?php + +class FOO +{ + private const FOO = 'BAR'; +} + +class BAR extends FOO { } +?> +okey +--EXPECT-- +okey diff --git a/Zend/zend_opcode.c b/Zend/zend_opcode.c index 1566ee34cf..ea8fa0917d 100644 --- a/Zend/zend_opcode.c +++ b/Zend/zend_opcode.c @@ -297,8 +297,8 @@ ZEND_API void destroy_zend_class(zval *zv) } } } ZEND_HASH_FOREACH_END(); - zend_hash_destroy(&ce->constants_table); } + zend_hash_destroy(&ce->constants_table); if (ce->num_interfaces > 0 && ce->interfaces) { efree(ce->interfaces); } |