summaryrefslogtreecommitdiff
path: root/Zend/zend_constants.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_constants.c')
-rw-r--r--Zend/zend_constants.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c
index 4f2cedb9af..4930d1fdd4 100644
--- a/Zend/zend_constants.c
+++ b/Zend/zend_constants.c
@@ -32,7 +32,9 @@ void free_zend_constant(zval *zv)
zend_constant *c = Z_PTR_P(zv);
if (!(c->flags & CONST_PERSISTENT)) {
- zval_dtor(&c->value);
+ if (Z_REFCOUNTED(c->value) || Z_IMMUTABLE(c->value)) {
+ _zval_dtor_func(Z_COUNTED(c->value) ZEND_FILE_LINE_CC);
+ }
} else {
zval_internal_dtor(&c->value);
}