From ac0bee7ec96aa7a5a2294681f442e189baa7548d Mon Sep 17 00:00:00 2001 From: Zeev Suraski Date: Tue, 14 Aug 2001 15:22:34 +0000 Subject: [PATCH] MFZE1 --- Zend/zend_constants.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index 556037aa7a..5cee47fc41 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -27,7 +27,8 @@ void free_zend_constant(zend_constant *c) { - if (!(c->flags & CONST_PERSISTENT)) { + if (!(c->flags & CONST_PERSISTENT) + || (c->flags & CONST_EFREE_PERSISTENT)) { zval_dtor(&c->value); } free(c->name); @@ -246,7 +247,10 @@ ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC) zend_str_tolower(lowercase_name, c->name_len); if (zend_hash_add(EG(zend_constants), lowercase_name, c->name_len, (void *) c, sizeof(zend_constant), NULL)==FAILURE) { free(c->name); - zval_dtor(&c->value); + if (!(c->flags & CONST_PERSISTENT) + || (c->flags & CONST_EFREE_PERSISTENT)) { + zval_dtor(&c->value); + } zend_error(E_NOTICE,"Constant %s already defined", lowercase_name); ret = FAILURE; } -- 2.50.1