moriyoshi Mon Jul 19 04:34:18 2004 EDT Modified files: /php-src/ext/iconv iconv.c Log: - Fix a bug in iconv stream filter that prevents pending buckets from being processed on flush operation (same issue pollita fixed several days ago). http://cvs.php.net/diff.php/php-src/ext/iconv/iconv.c?r1=1.117&r2=1.118&ty=u Index: php-src/ext/iconv/iconv.c diff -u php-src/ext/iconv/iconv.c:1.117 php-src/ext/iconv/iconv.c:1.118 --- php-src/ext/iconv/iconv.c:1.117 Thu Jan 8 03:15:47 2004 +++ php-src/ext/iconv/iconv.c Mon Jul 19 04:34:18 2004 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: iconv.c,v 1.117 2004/01/08 08:15:47 andi Exp $ */ +/* $Id: iconv.c,v 1.118 2004/07/19 08:34:18 moriyoshi Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -2531,27 +2531,27 @@ size_t consumed = 0; php_iconv_stream_filter *self = (php_iconv_stream_filter *)filter->abstract; - if (flags != PSFS_FLAG_NORMAL) { - if (php_iconv_stream_filter_append_bucket(self, stream, filter, buckets_out, NULL, 0, &consumed, self->persistent TSRMLS_CC) != SUCCESS) { - goto out_failure; - } - } else { - while (buckets_in->head != NULL) { - bucket = buckets_in->head; + while (buckets_in->head != NULL) { + bucket = buckets_in->head; - php_stream_bucket_unlink(bucket TSRMLS_CC); + php_stream_bucket_unlink(bucket TSRMLS_CC); - if (php_iconv_stream_filter_append_bucket(self, stream, filter, buckets_out, bucket->buf, bucket->buflen, &consumed, self->persistent TSRMLS_CC) != SUCCESS) { goto out_failure; - } + if (php_iconv_stream_filter_append_bucket(self, stream, filter, buckets_out, bucket->buf, bucket->buflen, &consumed, self->persistent TSRMLS_CC) != SUCCESS) { goto out_failure; + } - php_stream_bucket_delref(bucket TSRMLS_CC); + php_stream_bucket_delref(bucket TSRMLS_CC); + } + + if (flags != PSFS_FLAG_NORMAL) { + if (php_iconv_stream_filter_append_bucket(self, stream, filter, buckets_out, NULL, 0, &consumed, self->persistent TSRMLS_CC) != SUCCESS) { + goto out_failure; } } - if (bytes_consumed) { + if (bytes_consumed != NULL) { *bytes_consumed = consumed; } - + return PSFS_PASS_ON; out_failure:
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php