summaryrefslogtreecommitdiff
path: root/Zend/zend_constants.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2018-05-28 16:27:12 +0300
committerDmitry Stogov <dmitry@zend.com>2018-05-28 16:27:12 +0300
commit5eb1f92f31cafc48384f9096012f421b37f6d425 (patch)
tree4ed67b92229407e7b5cbab37b96428fe80eb3f94 /Zend/zend_constants.c
parent925f05dd1a35eafa71eb29abb69cdfc31a23a75d (diff)
downloadphp-git-5eb1f92f31cafc48384f9096012f421b37f6d425.tar.gz
Use zend_string_release_ex() instread of zend_string_release() in places, where we sure about string persistence.
Diffstat (limited to 'Zend/zend_constants.c')
-rw-r--r--Zend/zend_constants.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c
index b07901c470..c64de9839b 100644
--- a/Zend/zend_constants.c
+++ b/Zend/zend_constants.c
@@ -41,13 +41,17 @@ void free_zend_constant(zval *zv)
if (!(c->flags & CONST_PERSISTENT)) {
zval_ptr_dtor(&c->value);
+ if (c->name) {
+ zend_string_release_ex(c->name, 0);
+ }
+ efree(c);
} else {
zval_internal_dtor(&c->value);
+ if (c->name) {
+ zend_string_release_ex(c->name, 1);
+ }
+ free(c);
}
- if (c->name) {
- zend_string_release(c->name);
- }
- pefree(c, c->flags & CONST_PERSISTENT);
}
@@ -378,7 +382,7 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope,
}
}
failure:
- zend_string_release(class_name);
+ zend_string_release_ex(class_name, 0);
zend_string_efree(constant_name);
return ret_constant;
}