Mercurial > hg > dmlib
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);