From: Michael Wallner Date: Thu, 31 Aug 2006 13:51:35 +0000 (+0000) Subject: - output handler alias ctor should know about chunk_size and flags X-Git-Tag: RELEASE_1_0_0RC1~1812 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=df26ea87bdc7aae1ade1189027a571b25968e17b;p=php - output handler alias ctor should know about chunk_size and flags --- diff --git a/ext/zlib/php_zlib.h b/ext/zlib/php_zlib.h index 6c54c4476c..fb6033f722 100644 --- a/ext/zlib/php_zlib.h +++ b/ext/zlib/php_zlib.h @@ -58,7 +58,7 @@ typedef struct _php_zlib_context { int php_zlib_output_encoding(TSRMLS_D); int php_zlib_encode(const char *in_buf, size_t in_len, char **out_buf, size_t *out_len, int encoding, int level TSRMLS_DC); int php_zlib_decode(const char *in_buf, size_t in_len, char **out_buf, size_t *out_len, int encoding, size_t max_len TSRMLS_DC); -php_output_handler *php_zlib_output_handler_init(zval *handler_name TSRMLS_DC); +php_output_handler *php_zlib_output_handler_init(zval *handler_name, size_t chunk_size, int flags TSRMLS_DC); int php_zlib_output_handler(void **handler_context, php_output_context *output_context); void php_zlib_output_handler_dtor(void *opaq TSRMLS_DC); int php_zlib_output_conflict_check(zval *handler_name TSRMLS_DC); diff --git a/ext/zlib/zlib.c b/ext/zlib/zlib.c index e0b4060c3a..8e20190b05 100644 --- a/ext/zlib/zlib.c +++ b/ext/zlib/zlib.c @@ -85,7 +85,8 @@ void php_zlib_output_compression_start(TSRMLS_D) default: MAKE_STD_ZVAL(tmp); ZVAL_ASCII_STRING(tmp, PHP_ZLIB_OUTPUT_HANDLER_NAME, ZSTR_DUPLICATE); - if ((h = php_zlib_output_handler_init(tmp TSRMLS_CC)) && (SUCCESS == php_output_handler_start(h TSRMLS_CC))) { + if ( (h = php_zlib_output_handler_init(tmp, ZLIBG(output_compression), PHP_OUTPUT_HANDLER_STDFLAGS TSRMLS_CC)) && + (SUCCESS == php_output_handler_start(h TSRMLS_CC))) { if (ZLIBG(output_handler) && *ZLIBG(output_handler)) { MAKE_STD_ZVAL(zoh); ZVAL_ASCII_STRING(zoh, ZLIBG(output_handler), ZSTR_DUPLICATE); @@ -100,12 +101,12 @@ void php_zlib_output_compression_start(TSRMLS_D) /* }}} */ /* {{{ php_zlib_output_handler_init() */ -php_output_handler *php_zlib_output_handler_init(zval *handler_name TSRMLS_DC) +php_output_handler *php_zlib_output_handler_init(zval *handler_name, size_t chunk_size, int flags TSRMLS_DC) { php_output_handler *h = NULL; if (php_zlib_output_encoding(TSRMLS_C)) { - if ((h = php_output_handler_create_internal(handler_name, php_zlib_output_handler, ZLIBG(output_compression), PHP_OUTPUT_HANDLER_STDFLAGS TSRMLS_CC))) { + if ((h = php_output_handler_create_internal(handler_name, php_zlib_output_handler, chunk_size, flags TSRMLS_CC))) { php_output_handler_set_context(h, ecalloc(1, sizeof(php_zlib_context)), php_zlib_output_handler_dtor TSRMLS_CC); } } diff --git a/main/output.c b/main/output.c index bb63c7accc..765d9e2b99 100644 --- a/main/output.c +++ b/main/output.c @@ -495,7 +495,7 @@ PHPAPI php_output_handler *php_output_handler_create_user(zval *output_handler, case IS_STRING: case IS_UNICODE: if (Z_UNILEN_P(output_handler) && (alias = php_output_handler_alias(output_handler TSRMLS_CC))) { - handler = (*alias)(output_handler TSRMLS_CC); + handler = (*alias)(output_handler, chunk_size, flags TSRMLS_CC); break; } default: diff --git a/main/php_output.h b/main/php_output.h index 48a70e289f..a4f5acc0ae 100644 --- a/main/php_output.h +++ b/main/php_output.h @@ -109,7 +109,7 @@ typedef void (*php_output_handler_context_dtor_t)(void *opaq TSRMLS_DC); /* conflict check callback */ typedef int (*php_output_handler_conflict_check_t)(zval *handler_name TSRMLS_DC); /* ctor for aliases */ -typedef struct _php_output_handler *(*php_output_handler_alias_ctor_t)(zval *handler_name TSRMLS_DC); +typedef struct _php_output_handler *(*php_output_handler_alias_ctor_t)(zval *handler_name, size_t chunk_size, int flags TSRMLS_DC); typedef struct _php_output_handler { zval *name;