Commit 10bf593b authored by Cliff Woolley's avatar Cliff Woolley
Browse files

Simplify by using apr_bucket_delete(e) where possible.

(Oh, plus one tiny little loop simplification.)


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88337 13f79535-47bb-0310-9956-ffa450edef68
parent 5fee9560
Loading
Loading
Loading
Loading
+3 −6
Original line number Diff line number Diff line
@@ -743,8 +743,7 @@ static apr_status_t xlate_brigade(charset_filter_ctx_t *ctx,
    while (1) {
        if (!bucket_avail) { /* no bytes left to process in the current bucket... */
            if (consumed_bucket) {
                APR_BUCKET_REMOVE(consumed_bucket);
                apr_bucket_destroy(consumed_bucket);
                apr_bucket_delete(consumed_bucket);
                consumed_bucket = NULL;
            }
            b = APR_BRIGADE_FIRST(bb);
@@ -802,8 +801,7 @@ static apr_status_t xlate_brigade(charset_filter_ctx_t *ctx,
                if (bucket_avail) {
                    apr_bucket_split(b, bytes_in_bucket - bucket_avail);
                }
                APR_BUCKET_REMOVE(b);
                apr_bucket_destroy(b);
                apr_bucket_delete(b);
                break;
            }
        }
@@ -894,8 +892,7 @@ static apr_status_t xlate_out_filter(ap_filter_t *f, apr_bucket_brigade *bb)
    while (!done) {
        if (!cur_len) { /* no bytes left to process in the current bucket... */
            if (consumed_bucket) {
                APR_BUCKET_REMOVE(consumed_bucket);
                apr_bucket_destroy(consumed_bucket);
                apr_bucket_delete(consumed_bucket);
                consumed_bucket = NULL;
            }
            if (dptr == APR_BRIGADE_SENTINEL(bb)) {
+8 −16
Original line number Diff line number Diff line
@@ -2355,8 +2355,7 @@ static void send_parsed_content(apr_bucket_brigade **bb, request_rec *r,

                while (!APR_BRIGADE_EMPTY(ctx->ssi_tag_brigade)) {
                    tmp_bkt = APR_BRIGADE_FIRST(ctx->ssi_tag_brigade);
                    APR_BUCKET_REMOVE(tmp_bkt);
                    apr_bucket_destroy(tmp_bkt);
                    apr_bucket_delete(tmp_bkt);
                }
            }

@@ -2370,8 +2369,7 @@ static void send_parsed_content(apr_bucket_brigade **bb, request_rec *r,
                    apr_bucket *free_bucket = dptr;

                    dptr = APR_BUCKET_NEXT (dptr);
                    APR_BUCKET_REMOVE(free_bucket);
                    apr_bucket_destroy(free_bucket);
                    apr_bucket_delete(free_bucket);
                }
            }

@@ -2445,16 +2443,14 @@ static void send_parsed_content(apr_bucket_brigade **bb, request_rec *r,
                if (!APR_BRIGADE_EMPTY(ctx->ssi_tag_brigade)) {
                    while (!APR_BRIGADE_EMPTY(ctx->ssi_tag_brigade)) {
                        tmp_bkt = APR_BRIGADE_FIRST(ctx->ssi_tag_brigade);
                        APR_BUCKET_REMOVE(tmp_bkt);
                        apr_bucket_destroy(tmp_bkt);
                        apr_bucket_delete(tmp_bkt);
                    }
                }
                else {
                    do {
                        tmp_bkt  = tmp_dptr;
                        tmp_dptr = APR_BUCKET_NEXT (tmp_dptr);
                        APR_BUCKET_REMOVE(tmp_bkt);
                        apr_bucket_destroy(tmp_bkt);
                        apr_bucket_delete(tmp_bkt);
                    } while ((tmp_dptr != dptr) &&
                             (tmp_dptr != APR_BRIGADE_SENTINEL(*bb)));
                }
@@ -2525,16 +2521,14 @@ static void send_parsed_content(apr_bucket_brigade **bb, request_rec *r,
            if (!APR_BRIGADE_EMPTY(ctx->ssi_tag_brigade)) {
                while (!APR_BRIGADE_EMPTY(ctx->ssi_tag_brigade)) {
                    tmp_bkt = APR_BRIGADE_FIRST(ctx->ssi_tag_brigade);
                    APR_BUCKET_REMOVE(tmp_bkt);
                    apr_bucket_destroy(tmp_bkt);
                    apr_bucket_delete(tmp_bkt);
                }
            }
            else {
                do {
                    tmp_bkt  = tmp_dptr;
                    tmp_dptr = APR_BUCKET_NEXT (tmp_dptr);
                    APR_BUCKET_REMOVE(tmp_bkt);
                    apr_bucket_destroy(tmp_bkt);
                    apr_bucket_delete(tmp_bkt);
                } while ((tmp_dptr != content_head) &&
                         (tmp_dptr != APR_BRIGADE_SENTINEL(*bb)));
            }
@@ -2558,8 +2552,7 @@ static void send_parsed_content(apr_bucket_brigade **bb, request_rec *r,
            if (!APR_BRIGADE_EMPTY(ctx->ssi_tag_brigade)) {
                while (!APR_BRIGADE_EMPTY(ctx->ssi_tag_brigade)) {
                    tmp_bkt = APR_BRIGADE_FIRST(ctx->ssi_tag_brigade);
                    APR_BUCKET_REMOVE(tmp_bkt);
                    apr_bucket_destroy(tmp_bkt);
                    apr_bucket_delete(tmp_bkt);
                }
            }

@@ -2581,8 +2574,7 @@ static void send_parsed_content(apr_bucket_brigade **bb, request_rec *r,
            do {
                free_bucket = dptr;
                dptr = APR_BUCKET_NEXT (dptr);
                APR_BUCKET_REMOVE(free_bucket);
                apr_bucket_destroy(free_bucket);
                apr_bucket_delete(free_bucket);
            } while (dptr != APR_BRIGADE_SENTINEL(*bb));
        }
        else { /* Otherwise pass it along... */
+1 −2
Original line number Diff line number Diff line
@@ -3289,8 +3289,7 @@ static apr_status_t core_output_filter(ap_filter_t *f, apr_bucket_brigade *b)
             * we want to process to second request fully.
             */
            if (APR_BUCKET_IS_EOS(e)) {
                APR_BUCKET_REMOVE(e);
                apr_bucket_destroy(e);
                apr_bucket_delete(e);
            }
            ap_save_brigade(f, &ctx->b, &b);
            return APR_SUCCESS;
+9 −20
Original line number Diff line number Diff line
@@ -890,8 +890,7 @@ apr_status_t ap_dechunk_filter(ap_filter_t *f, apr_bucket_brigade *bb,
        }
        if (ctx->bytes_delivered == ctx->chunk_size) {
            AP_DEBUG_ASSERT(APR_BUCKET_IS_EOS(b));
            APR_BUCKET_REMOVE(b);
            apr_bucket_destroy(b);
            apr_bucket_delete(b);
            ctx->state = WANT_TRL;
        }
    }
@@ -954,8 +953,7 @@ apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b, ap_input_mode
                        c += 2;
                    else return APR_SUCCESS;
                }
                APR_BUCKET_REMOVE(e);
                apr_bucket_destroy(e);
                apr_bucket_delete(e);
            }
        }
    }
@@ -967,11 +965,10 @@ apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b, ap_input_mode
    }

    if (f->c->remain) {
        e = APR_BRIGADE_FIRST(ctx->b);
        while (e != APR_BRIGADE_SENTINEL(ctx->b)) {
            apr_bucket *old;
        while (!APR_BRIGADE_EMPTY(ctx->b)) {
            const char *ignore;

            e = APR_BRIGADE_FIRST(ctx->b);
            if ((rv = apr_bucket_read(e, &ignore, &len, mode)) != APR_SUCCESS) {
                /* probably APR_IS_EAGAIN(rv); socket state isn't correct;
                 * remove log once we get this squared away */
@@ -992,11 +989,7 @@ apr_status_t ap_http_filter(ap_filter_t *f, apr_bucket_brigade *b, ap_input_mode
                APR_BRIGADE_INSERT_TAIL(b, e);
                break; /* once we've gotten some data, deliver it to caller */
            }

            old = e;
            e = APR_BUCKET_NEXT(e);
            APR_BUCKET_REMOVE(old);
            apr_bucket_destroy(old);
            apr_bucket_delete(e);
        }
        if (f->c->remain == 0) {
            apr_bucket *eos = apr_bucket_eos_create();
@@ -1067,8 +1060,7 @@ AP_CORE_DECLARE(int) ap_getline(char *s, int n, request_rec *r, int fold)
        }
        e = APR_BRIGADE_FIRST(b); 
        if (e->length == 0) {
            APR_BUCKET_REMOVE(e);
            apr_bucket_destroy(e);
            apr_bucket_delete(e);
            continue;
        }
        retval = apr_bucket_read(e, &temp, &length, APR_BLOCK_READ);
@@ -1089,8 +1081,7 @@ AP_CORE_DECLARE(int) ap_getline(char *s, int n, request_rec *r, int fold)
        last_char = pos + length - 1;
        if (last_char < beyond_buff) {
            memcpy(pos, temp, length);
            APR_BUCKET_REMOVE(e);
            apr_bucket_destroy(e);
            apr_bucket_delete(e);
        }
        else {
            /* input line was larger than the caller's buffer */
@@ -2799,8 +2790,7 @@ AP_DECLARE(long) ap_get_client_block(request_rec *r, char *buffer, int bufsiz)
    } while (APR_BRIGADE_EMPTY(bb));

    if (APR_BUCKET_IS_EOS(b)) {         /* reached eos on previous invocation */
        APR_BUCKET_REMOVE(b);
        apr_bucket_destroy(b);
        apr_bucket_delete(b);
        return 0;
    }

@@ -2824,8 +2814,7 @@ AP_DECLARE(long) ap_get_client_block(request_rec *r, char *buffer, int bufsiz)
        r->remaining -= len_read;        /* XXX yank me? */
        old = b;
        b = APR_BUCKET_NEXT(b);
        APR_BUCKET_REMOVE(old);
        apr_bucket_destroy(old);
        apr_bucket_delete(old);
    }

    return total;
+1 −2
Original line number Diff line number Diff line
@@ -806,8 +806,7 @@ AP_CORE_DECLARE_NONSTD(apr_status_t) ap_sub_req_output_filter(ap_filter_t *f,
    apr_bucket *e = APR_BRIGADE_LAST(bb);

    if (APR_BUCKET_IS_EOS(e)) {
        APR_BUCKET_REMOVE(e);
        apr_bucket_destroy(e);
        apr_bucket_delete(e);
    }
    ap_pass_brigade(f->next, bb);
    return APR_SUCCESS;