Jinoh Kang : winedbg: Use exponential growth in gdbproxy reply_buffer_grow.

Alexandre Julliard julliard at winehq.org
Tue Nov 23 16:03:31 CST 2021


Module: wine
Branch: master
Commit: 16df7786279ca081558fabee962c1cc950656a34
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=16df7786279ca081558fabee962c1cc950656a34

Author: Jinoh Kang <jinoh.kang.kr at gmail.com>
Date:   Wed Nov 24 00:09:53 2021 +0900

winedbg: Use exponential growth in gdbproxy reply_buffer_grow.

Signed-off-by: Jinoh Kang <jinoh.kang.kr at gmail.com>
Signed-off-by: Rémi Bernon <rbernon at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 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);
     }
 }




More information about the wine-cvs mailing list