]> granicus.if.org Git - php/commitdiff
- Merge: fix leak
authorPierre Joye <pajoye@php.net>
Fri, 9 Oct 2009 19:13:33 +0000 (19:13 +0000)
committerPierre Joye <pajoye@php.net>
Fri, 9 Oct 2009 19:13:33 +0000 (19:13 +0000)
main/output.c

index dff4959972909c6ddd8acc3fa951d48f950871ca..ee1cb4ca0c9c4c7673c2c2aae64ce81f3a0176cb 100644 (file)
@@ -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);
        }