summaryrefslogtreecommitdiff
path: root/main/output.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2009-09-21 11:22:13 +0000
committerDmitry Stogov <dmitry@php.net>2009-09-21 11:22:13 +0000
commitb4ba7fb96e829d9ccc58e5fd24411008e95c15f1 (patch)
tree948a526736b49d69287a2a3c69993e30dbb0a3c1 /main/output.c
parentdc1e7d6d6dd256b3fa2d06deeb7ea88da3b7fed5 (diff)
downloadphp-git-b4ba7fb96e829d9ccc58e5fd24411008e95c15f1.tar.gz
Fixed memory leak
Diffstat (limited to 'main/output.c')
-rw-r--r--main/output.c8
1 files changed, 1 insertions, 7 deletions
diff --git a/main/output.c b/main/output.c
index dff4959972..ee1cb4ca0c 100644
--- a/main/output.c
+++ b/main/output.c
@@ -227,8 +227,6 @@ PHPAPI void php_end_ob_buffer(zend_bool send_buffer, zend_bool just_flush TSRMLS
ALLOC_INIT_ZVAL(orig_buffer);
ZVAL_STRINGL(orig_buffer, OG(active_ob_buffer).buffer, OG(active_ob_buffer).text_length, 1);
- Z_SET_REFCOUNT_P(orig_buffer, 2); /* don't let call_user_function() destroy our buffer */
- Z_SET_ISREF_P(orig_buffer);
ALLOC_INIT_ZVAL(z_status);
ZVAL_LONG(z_status, status);
@@ -248,11 +246,7 @@ PHPAPI void php_end_ob_buffer(zend_bool send_buffer, zend_bool just_flush TSRMLS
if (!just_flush) {
zval_ptr_dtor(&OG(active_ob_buffer).output_handler);
}
- Z_SET_REFCOUNT_P(orig_buffer, Z_REFCOUNT_P(orig_buffer) - 2);
- if (Z_REFCOUNT_P(orig_buffer) <= 0) { /* free the zval */
- zval_dtor(orig_buffer);
- FREE_ZVAL(orig_buffer);
- }
+ zval_ptr_dtor(&orig_buffer);
zval_ptr_dtor(&z_status);
}