]> granicus.if.org Git - apache/commitdiff
performance: change an O(n) while loop to an equivalent O(1) brigade macro
authorCliff Woolley <jwoolley@apache.org>
Thu, 23 Aug 2001 02:32:26 +0000 (02:32 +0000)
committerCliff Woolley <jwoolley@apache.org>
Thu, 23 Aug 2001 02:32:26 +0000 (02:32 +0000)
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@90536 13f79535-47bb-0310-9956-ffa450edef68

modules/ssl/ssl_engine_io.c

index a3f80b87d77f03c991ea5dc84055fcb73ae41715..d6c0d34702c9947de29494301910f6574427e7eb 100644 (file)
@@ -372,8 +372,10 @@ static apr_status_t ssl_io_filter_Output(ap_filter_t *f,
     return ret;
 }
 
-static apr_status_t ssl_io_filter_Input(ap_filter_t *f,apr_bucket_brigade *pbbOut,
-                                        ap_input_mode_t eMode, apr_off_t *readbytes)
+static apr_status_t ssl_io_filter_Input(ap_filter_t *f,
+                                        apr_bucket_brigade *pbbOut,
+                                        ap_input_mode_t eMode,
+                                        apr_off_t *readbytes)
 {
     apr_status_t ret;
     SSLFilterRec *pRec = f->ctx;
@@ -388,12 +390,7 @@ static apr_status_t ssl_io_filter_Input(ap_filter_t *f,apr_bucket_brigade *pbbOu
     if (ret != APR_SUCCESS)
        return ret;
 
-    /* XXX: shame that APR_BRIGADE_FOREACH doesn't work here */
-    while(!APR_BRIGADE_EMPTY(pRec->pbbPendingInput)) {
-       apr_bucket *pbktIn=APR_BRIGADE_FIRST(pRec->pbbPendingInput);
-       APR_BUCKET_REMOVE(pbktIn);
-       APR_BRIGADE_INSERT_TAIL(pbbOut,pbktIn);
-    }
+    APR_BRIGADE_CONCAT(pbbOut, pRec->pbbPendingInput);
 
     return APR_SUCCESS;
 }