diff options
author | Zeev Suraski <zeev@php.net> | 2001-08-14 15:22:34 +0000 |
---|---|---|
committer | Zeev Suraski <zeev@php.net> | 2001-08-14 15:22:34 +0000 |
commit | ac0bee7ec96aa7a5a2294681f442e189baa7548d (patch) | |
tree | 97bf14e7240f149db0655052e15e02c2300623cf | |
parent | ed126f68d5359a5f5ca7c7e86fcc66a0019d567c (diff) | |
download | php-git-ac0bee7ec96aa7a5a2294681f442e189baa7548d.tar.gz |
MFZE1
-rw-r--r-- | Zend/zend_constants.c | 8 |
1 files 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; } |