diff options
-rw-r--r-- | ext/standard/url_scanner_ex.c | 5 | ||||
-rw-r--r-- | ext/standard/url_scanner_ex.re | 1 | ||||
-rw-r--r-- | ext/zlib/zlib.c | 4 | ||||
-rw-r--r-- | main/output.c | 16 |
4 files changed, 12 insertions, 14 deletions
diff --git a/ext/standard/url_scanner_ex.c b/ext/standard/url_scanner_ex.c index abfc286850..59834ed5dd 100644 --- a/ext/standard/url_scanner_ex.c +++ b/ext/standard/url_scanner_ex.c @@ -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; } diff --git a/ext/standard/url_scanner_ex.re b/ext/standard/url_scanner_ex.re index f8208f87a0..c9c60e190a 100644 --- a/ext/standard/url_scanner_ex.re +++ b/ext/standard/url_scanner_ex.re @@ -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; } diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c index a4653d62fd..d5501fd921 100644 --- a/ext/zlib/zlib.c +++ b/ext/zlib/zlib.c @@ -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); } diff --git a/main/output.c b/main/output.c index c6822010b1..7577bb6aad 100644 --- a/main/output.c +++ b/main/output.c @@ -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) { |