summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/tests/bug76754.phpt18
-rw-r--r--Zend/zend_opcode.c2
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);
}