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

Reply via email to