summaryrefslogtreecommitdiff
path: root/Zend/zend_gc.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2016-07-14 12:05:44 +0300
committerDmitry Stogov <dmitry@zend.com>2016-07-14 12:05:44 +0300
commit8fc934b0a1781bc0685775f4c476c6704d796a76 (patch)
tree765ec60f8f2cbb8640cc154ce5ace3e09425afb3 /Zend/zend_gc.c
parentbb2bafc7d0e9296e6dfd4035839daf2cf9498da9 (diff)
downloadphp-git-8fc934b0a1781bc0685775f4c476c6704d796a76.tar.gz
Fixed bug #71818 (Memory leak when array altered in destructor)
Diffstat (limited to 'Zend/zend_gc.c')
-rw-r--r--Zend/zend_gc.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/Zend/zend_gc.c b/Zend/zend_gc.c
index c001efcead..0e18a497a5 100644
--- a/Zend/zend_gc.c
+++ b/Zend/zend_gc.c
@@ -735,7 +735,6 @@ static void gc_add_garbage(zend_refcounted *ref, gc_additional_buffer **addition
GC_TYPE(ref) |= GC_FAKE_BUFFER_FLAG;
}
if (buf) {
- GC_REFCOUNT(ref)++;
buf->ref = ref;
buf->next = GC_G(roots).next;
buf->prev = &GC_G(roots);
@@ -898,7 +897,6 @@ static int gc_collect_roots(uint32_t *flags, gc_additional_buffer **additional_b
current = GC_G(roots).next;
while (current != &GC_G(roots)) {
- GC_REFCOUNT(current->ref)++;
if (GC_REF_GET_COLOR(current->ref) == GC_WHITE) {
count += gc_collect_white(current->ref, flags, additional_buffer);
}
@@ -939,7 +937,6 @@ tail_call:
GC_REF_GET_COLOR(ref) == GC_BLACK &&
GC_ADDRESS(GC_INFO(ref)) != GC_ROOT_BUFFER_MAX_ENTRIES)) {
GC_TRACE_REF(ref, "removing from buffer");
- GC_REFCOUNT(ref)--;
if (root) {
GC_INFO(ref) = 0;
GC_REMOVE_FROM_ROOTS(root);