]> granicus.if.org Git - php/commitdiff
- output handler alias ctor should know about chunk_size and flags
authorMichael Wallner <mike@php.net>
Thu, 31 Aug 2006 13:51:35 +0000 (13:51 +0000)
committerMichael Wallner <mike@php.net>
Thu, 31 Aug 2006 13:51:35 +0000 (13:51 +0000)
ext/zlib/php_zlib.h
ext/zlib/zlib.c
main/output.c
main/php_output.h

index 6c54c4476cf646f928ebebac3c3d2460280218a4..fb6033f72259f053bfd48936ec63a26001ac7737 100644 (file)
@@ -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);
index e0b4060c3a9998ca41ec3022a85715e3f867128c..8e20190b057c2c17ebf0e0283c2ad5d6186ec94b 100644 (file)
@@ -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);
                }
        }
index bb63c7acccc212cc71879a6f28a90babf773a68e..765d9e2b99e5e6acc4e913cda1db1ea1a0922540 100644 (file)
@@ -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:
index 48a70e289fef8ab6838371c68b7c11a236a51d89..a4f5acc0ae63c03c2754c5bd38dc6aeb5469d356 100644 (file)
@@ -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;