diff src/core/ngx_output_chain.c @ 334:af451db3fe99

nginx-0.0.3-2004-05-12-09:37:55 import
author Igor Sysoev <igor@sysoev.ru>
date Wed, 12 May 2004 05:37:55 +0000
parents d621239c30f7
children 6bdf858bff8c
line wrap: on
line diff
--- a/src/core/ngx_output_chain.c
+++ b/src/core/ngx_output_chain.c
@@ -81,7 +81,11 @@ int ngx_output_chain(ngx_output_chain_ct
                     ctx->hunk = ctx->free->hunk;
                     ctx->free = ctx->free->next;
 
-                } else if (ctx->hunks < ctx->bufs.num) {
+                } else if (out || ctx->hunks == ctx->bufs.num) {
+
+                    break;
+
+                } else {
 
                     size = ctx->bufs.size;
 
@@ -118,9 +122,6 @@ int ngx_output_chain(ngx_output_chain_ct
                     ctx->hunk->tag = ctx->tag;
                     ctx->hunk->type |= NGX_HUNK_RECYCLED;
                     ctx->hunks++;
-
-                } else {
-                    break;
                 }
             }
 
@@ -148,10 +149,6 @@ int ngx_output_chain(ngx_output_chain_ct
             *last_out = cl;
             last_out = &cl->next;
             ctx->hunk = NULL;
-
-            if (ctx->free == NULL) {
-                break;
-            }
         }
 
         if (out == NULL && last != NGX_NONE) {