changeset 1455:a957b318fbe2

Add dmGrowBufCheckGrow() function.
author Matti Hamalainen <ccr@tnsp.org>
date Thu, 10 May 2018 18:53:23 +0300
parents fff3b58d031c
children 42fb39da7dde
files src/dmgrowbuf.c src/dmgrowbuf.h
diffstat 2 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/dmgrowbuf.c	Thu May 10 18:33:57 2018 +0300
+++ b/src/dmgrowbuf.c	Thu May 10 18:53:23 2018 +0300
@@ -66,6 +66,19 @@
 }
 
 
+BOOL dmGrowBufCheckGrow(DMGrowBuf *buf, const size_t nsize)
+{
+    if (buf->data == NULL || nsize > buf->size)
+    {
+        buf->size = nsize + (buf->mingrow > 0 ? buf->mingrow : 1024);
+        if ((buf->data = dmRealloc(buf->data, buf->size)) == NULL)
+            return FALSE;
+    }
+
+    return TRUE;
+}
+
+
 int dmGrowBufResize(DMGrowBuf *buf)
 {
     if (buf == NULL)
--- a/src/dmgrowbuf.h	Thu May 10 18:33:57 2018 +0300
+++ b/src/dmgrowbuf.h	Thu May 10 18:53:23 2018 +0300
@@ -25,6 +25,7 @@
 int    dmGrowBufAlloc(DMGrowBuf **pbuf, const size_t initial, const size_t mingrow);
 void   dmGrowBufFree(DMGrowBuf *buf);
 BOOL   dmGrowBufGrow(DMGrowBuf *buf, const size_t amount);
+BOOL   dmGrowBufCheckGrow(DMGrowBuf *buf, const size_t nsize);
 int    dmGrowBufResize(DMGrowBuf *buf);
 
 BOOL   dmGrowBufPutU8(DMGrowBuf *buf, const Uint8 value);