winedbg: Replace realloc() with HeapReAlloc().
Francois Gouget
fgouget at free.fr
Thu May 14 19:03:36 CDT 2009
---
Unlike realloc(), HeapReAlloc() does now work on NULL pointers (AFAICS).
programs/winedbg/gdbproxy.c | 12 ++++++++++--
1 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/programs/winedbg/gdbproxy.c b/programs/winedbg/gdbproxy.c
index 9026b37..680caea 100644
--- a/programs/winedbg/gdbproxy.c
+++ b/programs/winedbg/gdbproxy.c
@@ -823,12 +823,20 @@ static void get_thread_info(struct gdb_context* gdbctx, unsigned tid,
enum packet_return {packet_error = 0x00, packet_ok = 0x01, packet_done = 0x02,
packet_last_f = 0x80};
+static char* packet_realloc(char* buf, int size)
+{
+ if (!buf)
+ return HeapAlloc(GetProcessHeap(), 0, size);
+ return HeapReAlloc(GetProcessHeap(), 0, buf, size);
+
+}
+
static void packet_reply_grow(struct gdb_context* gdbctx, size_t size)
{
if (gdbctx->out_buf_alloc < gdbctx->out_len + size)
{
gdbctx->out_buf_alloc = ((gdbctx->out_len + size) / 32 + 1) * 32;
- gdbctx->out_buf = realloc(gdbctx->out_buf, gdbctx->out_buf_alloc);
+ gdbctx->out_buf = packet_realloc(gdbctx->out_buf, gdbctx->out_buf_alloc);
}
}
@@ -2105,7 +2113,7 @@ static int fetch_data(struct gdb_context* gdbctx)
{
#define STEP 128
if (gdbctx->in_len + STEP > gdbctx->in_buf_alloc)
- gdbctx->in_buf = realloc(gdbctx->in_buf, gdbctx->in_buf_alloc += STEP);
+ gdbctx->in_buf = packet_realloc(gdbctx->in_buf, gdbctx->in_buf_alloc += STEP);
#undef STEP
if (gdbctx->trace & GDBPXY_TRC_LOWLEVEL)
fprintf(stderr, "%d %d %*.*s\n",
--
1.6.2.1
More information about the wine-patches
mailing list