]> granicus.if.org Git - php/commitdiff
corrected handling of internal output buffers
authorMarcus Boerger <helly@php.net>
Sat, 10 Aug 2002 16:12:36 +0000 (16:12 +0000)
committerMarcus Boerger <helly@php.net>
Sat, 10 Aug 2002 16:12:36 +0000 (16:12 +0000)
minor fixs

ext/standard/url_scanner_ex.c
ext/standard/url_scanner_ex.re
ext/zlib/zlib.c
main/output.c

index abfc286850f89dd6f9836cf1a740094988f000f0..59834ed5ddb3444f7f345ebb0fb6d5f20d72123b 100644 (file)
@@ -1,5 +1,5 @@
-/* Generated by re2c 0.5 on Sat Jun 29 13:09:10 2002 */
-#line 1 "/home/thies/devel/php4/ext/standard/url_scanner_ex.re"
+/* Generated by re2c 0.5 on Sat Aug 10 17:30:38 2002 */
+#line 1 "/usr/src/php4/ext/standard/url_scanner_ex.re"
 /*
   +----------------------------------------------------------------------+
   | PHP Version 4                                                        |
@@ -889,7 +889,6 @@ int php_url_scanner_add_var(char *name, int name_len, char *value, int value_len
                int chunk_size = 4096; /* XXX where should we get chunk_size from? */
 
                php_url_scanner_ex_activate(TSRMLS_C);
-               php_start_ob_buffer(NULL, chunk_size, 1 TSRMLS_CC);
                php_ob_set_internal_handler(php_url_scanner_output_handler, chunk_size, "URL-Rewriter", 1 TSRMLS_CC);
                BG(url_adapt_state_ex).active = 1;
        }
index f8208f87a03ecbbbc3d4ad11dd4cd17e2b2aea31..c9c60e190a7c3b6b69e3365be8f878e88aed27da 100644 (file)
@@ -405,7 +405,6 @@ int php_url_scanner_add_var(char *name, int name_len, char *value, int value_len
                int chunk_size = 4096; /* XXX where should we get chunk_size from? */
 
                php_url_scanner_ex_activate(TSRMLS_C);
-               php_start_ob_buffer(NULL, chunk_size, 1 TSRMLS_CC);
                php_ob_set_internal_handler(php_url_scanner_output_handler, chunk_size, "URL-Rewriter", 1 TSRMLS_CC);
                BG(url_adapt_state_ex).active = 1;
        }
index a4653d62fdae0a5f0fae2586569b54198e593569..d5501fd921af21bc604f463a5fb9c9d7bfff77d8 100644 (file)
@@ -1013,9 +1013,7 @@ int php_enable_output_compression(int buffer_size TSRMLS_DC)
                return FAILURE;
        }
 
-       if (OG(ob_nesting_level)==0)
-               php_start_ob_buffer(NULL, buffer_size, 0 TSRMLS_CC);
-       php_ob_set_internal_handler(php_gzip_output_handler, (uint)(buffer_size*1.5f), "zlib output compression", 0 TSRMLS_CC);
+       php_ob_set_internal_handler(php_gzip_output_handler, buffer_size*3/2, "zlib output compression", 0 TSRMLS_CC);
        if (ZLIBG(output_handler) && strlen(ZLIBG(output_handler))) {
                php_start_ob_buffer_named(ZLIBG(output_handler), 0, 1 TSRMLS_CC);
        }
index c6822010b19c910823139e986feb20025fa628ff..7577bb6aad3ca9a6c3ed499f995c42bd4404b94b 100644 (file)
@@ -26,6 +26,8 @@
 #include "ext/standard/url_scanner_ex.h"
 #include "SAPI.h"
 
+#define OB_DEFAULT_HANDLER_NAME "default output handler"
+
 /* output functions */
 static int php_ub_body_write(const char *str, uint str_length TSRMLS_DC);
 static int php_ub_body_write_no_header(const char *str, uint str_length TSRMLS_DC);
@@ -325,8 +327,8 @@ PHPAPI void php_end_implicit_flush(TSRMLS_D)
  */
 PHPAPI void php_ob_set_internal_handler(php_output_handler_func_t internal_output_handler, uint buffer_size, char *handler_name, zend_bool erase TSRMLS_DC)
 {
-       if (OG(ob_nesting_level)==0) {
-               return;
+       if (OG(ob_nesting_level)==0 || OG(active_ob_buffer).internal_output_handler || strcmp(OG(active_ob_buffer).handler_name, OB_DEFAULT_HANDLER_NAME)) {
+               php_start_ob_buffer(NULL, buffer_size, erase TSRMLS_CC);
        }
 
        OG(active_ob_buffer).internal_output_handler = internal_output_handler;
@@ -409,7 +411,7 @@ static int php_ob_init_named(uint initial_size, uint block_size, char *handler_n
        OG(active_ob_buffer).chunk_size = chunk_size;
        OG(active_ob_buffer).status = 0;
        OG(active_ob_buffer).internal_output_handler = NULL;
-       OG(active_ob_buffer).handler_name = estrdup(handler_name&&handler_name[0]?handler_name:"default output handler");
+       OG(active_ob_buffer).handler_name = estrdup(handler_name&&handler_name[0]?handler_name:OB_DEFAULT_HANDLER_NAME);
        OG(active_ob_buffer).erase = erase;     
        OG(php_body_write) = php_b_body_write;
        return SUCCESS;
@@ -480,7 +482,7 @@ static int php_ob_init(uint initial_size, uint block_size, zval *output_handler,
                        SEPARATE_ZVAL(&output_handler);
                        output_handler->refcount++;
                }
-               result = php_ob_init_named(initial_size, block_size, "default output handler", output_handler, chunk_size, erase TSRMLS_CC);
+               result = php_ob_init_named(initial_size, block_size, OB_DEFAULT_HANDLER_NAME, output_handler, chunk_size, erase TSRMLS_CC);
        }
        return result;
 }
@@ -495,19 +497,19 @@ static int php_ob_list_each(php_ob_buffer *ob_buffer, zval *ob_handler_array)
 }
 /* }}} */
 
-/* {{{ proto array ob_list_handlers()
+/* {{{ proto false|array ob_list_handlers()
  *  List all output_buffers in an array 
  */
 PHP_FUNCTION(ob_list_handlers)
 {
        if (ZEND_NUM_ARGS()!=0) {
                WRONG_PARAM_COUNT;
-               return;
+               RETURN_FALSE;
        }
 
        if (array_init(return_value) == FAILURE) {
                php_error(E_ERROR, "%s(): Unable to initialize array", get_active_function_name(TSRMLS_C));
-               return;
+               RETURN_FALSE;
        }
        if (OG(ob_nesting_level)) {
                if (OG(ob_nesting_level)>1) {