summaryrefslogtreecommitdiff
path: root/Zend/zend_closures.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2014-03-21 21:35:47 +0400
committerDmitry Stogov <dmitry@zend.com>2014-03-21 21:35:47 +0400
commit5c169160e6a950dc3e5e36363947612bf26cc652 (patch)
tree24078d7c70235dfa8a50940c98117bdb6ee88da7 /Zend/zend_closures.c
parenta4280c340bf7c127f97fd0d14ec107d60d6f1c9c (diff)
downloadphp-git-5c169160e6a950dc3e5e36363947612bf26cc652.tar.gz
cosure->debug_info is not a subject for GC
Diffstat (limited to 'Zend/zend_closures.c')
-rw-r--r--Zend/zend_closures.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Zend/zend_closures.c b/Zend/zend_closures.c
index 61808927f1..9b4c2b4bce 100644
--- a/Zend/zend_closures.c
+++ b/Zend/zend_closures.c
@@ -359,6 +359,12 @@ static HashTable *zend_closure_get_gc(zval *obj, zval **table, int *n TSRMLS_DC)
{
zend_closure *closure = (zend_closure *)Z_OBJ_P(obj);
+ if (closure->debug_info != NULL) {
+ zend_hash_destroy(closure->debug_info);
+ efree(closure->debug_info);
+ closure->debug_info = NULL;
+ }
+
*table = Z_TYPE(closure->this_ptr) != IS_NULL ? &closure->this_ptr : NULL;
*n = Z_TYPE(closure->this_ptr) != IS_NULL ? 1 : 0;
return (closure->func.type == ZEND_USER_FUNCTION) ?