[PATCH v7 2/7] winedbg: Use exponential growth in gdbproxy reply_buffer_grow.

Jinoh Kang jinoh.kang.kr at gmail.com
Tue Nov 23 09:09:53 CST 2021


Signed-off-by: Jinoh Kang <jinoh.kang.kr at gmail.com>
---
 programs/winedbg/gdbproxy.c | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/programs/winedbg/gdbproxy.c b/programs/winedbg/gdbproxy.c
index 07a45cd1b15..120cc84e008 100644
--- a/programs/winedbg/gdbproxy.c
+++ b/programs/winedbg/gdbproxy.c
@@ -236,9 +236,14 @@ static void reply_buffer_clear(struct reply_buffer* reply)
 
 static void reply_buffer_grow(struct reply_buffer* reply, size_t size)
 {
-    if (reply->alloc < reply->len + size)
+    size_t required_alloc = reply->len + size;
+
+    if (reply->alloc < required_alloc)
     {
-        reply->alloc = ((reply->len + size) / 32 + 1) * 32;
+        reply->alloc = reply->alloc * 3 / 2;
+        if (reply->alloc < required_alloc)
+            reply->alloc = required_alloc;
+
         reply->base = realloc(reply->base, reply->alloc);
     }
 }
-- 
2.31.1




More information about the wine-devel mailing list