From 2071d8e545b9aca6af08852f721e9a7b7a617398 Mon Sep 17 00:00:00 2001 From: Michael Pavone Date: Wed, 29 Apr 2020 01:00:57 -0700 Subject: WIP netplay support --- serialize.c | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'serialize.c') diff --git a/serialize.c b/serialize.c index dc54bb8..a59151f 100644 --- a/serialize.c +++ b/serialize.c @@ -20,8 +20,13 @@ void init_serialize(serialize_buffer *buf) static void reserve(serialize_buffer *buf, size_t amount) { if (amount > (buf->storage - buf->size)) { - buf->storage *= 2; - buf = realloc(buf, buf->storage + sizeof(*buf)); + if (amount < buf->storage) { + buf->storage *= 2; + } else { + //doublign isn't enough, increase by the precise amount needed + buf->storage += amount - (buf->storage - buf->size); + } + buf->data = realloc(buf->data, buf->storage + sizeof(*buf)); } } -- cgit v1.2.3