# HG changeset patch # User Matti Hamalainen # Date 1525967603 -10800 # Node ID a957b318fbe279477c1311b2e43df40c22db0b38 # Parent fff3b58d031cdfe689dc1e13cbc85605ef2d5978 Add dmGrowBufCheckGrow() function. diff -r fff3b58d031c -r a957b318fbe2 src/dmgrowbuf.c --- 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) diff -r fff3b58d031c -r a957b318fbe2 src/dmgrowbuf.h --- 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);