From 94c67d067d0dddf7362ce4a31d647327ddefabce Mon Sep 17 00:00:00 2001 From: Brian Pane Date: Mon, 13 May 2002 06:16:31 +0000 Subject: [PATCH] Optimization: modified the power-of-two allocator in ap_rgetline_core() so that it converges on the new buffer size in a single iteration. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@95052 13f79535-47bb-0310-9956-ffa450edef68 --- server/protocol.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/server/protocol.c b/server/protocol.c index 499224508f0..f3765eefd9e 100644 --- a/server/protocol.c +++ b/server/protocol.c @@ -303,13 +303,13 @@ AP_DECLARE(apr_status_t) ap_rgetline_core(char **s, apr_size_t n, *s = apr_palloc(r->pool, len); } else if (bytes_handled + len > current_alloc) { - /* We resize to the next power of 2. */ - apr_size_t new_size = current_alloc; + /* Increase the buffer size */ + apr_size_t new_size = current_alloc * 2; char *new_buffer; - do { - new_size *= 2; - } while (bytes_handled + len > new_size); + if (bytes_handled + len > new_size) { + new_size = (bytes_handled + len) * 2; + } new_buffer = apr_palloc(r->pool, new_size); -- 2.47.2