# HG changeset patch # User Matti Hamalainen # Date 1526087566 -10800 # Node ID 064fc2e3ee64da6a2513f998b84602de6cf5cd7d # Parent 2f7ff28ea56e07b462c0e61785cf85a759290402 Add compile-time debugging information to DMGrowBuf. diff -r 2f7ff28ea56e -r 064fc2e3ee64 src/dmgrowbuf.c --- a/src/dmgrowbuf.c Sat May 12 04:05:10 2018 +0300 +++ b/src/dmgrowbuf.c Sat May 12 04:12:46 2018 +0300 @@ -6,9 +6,18 @@ */ #include "dmgrowbuf.h" +//#define DM_GROWBUF_DEBUG 1 + +#ifdef DM_GROWBUF_DEBUG +# define DM_DBG(...) do { fprintf(stderr, __VA_ARGS__); } while (0) +#else +# define DM_DBG(...) do { } while (0) +#endif + int dmGrowBufInit(DMGrowBuf *buf) { + DM_DBG("dmGrowBufInit(%p)\n", buf); if (buf == NULL) return DMERR_NULLPTR; @@ -22,6 +31,7 @@ { int res; + DM_DBG("dmGrowBufAlloc(%p, %" DM_PRIu_SIZE_T ", %" DM_PRIu_SIZE_T ")\n", buf, initial, mingrow); if ((res = dmGrowBufInit(buf)) != DMERR_OK) return res; @@ -45,6 +55,7 @@ if (pbuf == NULL) return DMERR_NULLPTR; + DM_DBG("dmGrowBufNew(%p, %" DM_PRIu_SIZE_T ", %" DM_PRIu_SIZE_T ")\n", pbuf, initial, mingrow); if ((*pbuf = dmMalloc0(sizeof(DMGrowBuf))) == NULL) return DMERR_MALLOC; @@ -65,8 +76,15 @@ void dmGrowBufFree(DMGrowBuf *buf) { + DM_DBG("dmGrowBufFree(%p)\n", buf); if (buf != NULL) { + DM_DBG( + " buf->adata = %p\n" + " buf->data = %p\n" + " buf->allocated = %s\n", + buf->adata, buf->data, buf->allocated ? "YES" : "NO"); + dmFreeR(&buf->adata); buf->data = NULL; @@ -80,6 +98,9 @@ { if (buf != NULL && buf->adata != NULL) { + DM_DBG("dmGrowBufPush(%p): size=%" DM_PRIu_SIZE_T "\n" + " nstack=%d [offs=%" DM_PRIu_SIZE_T ", len=%" DM_PRIu_SIZE_T "]\n", buf, buf->size, buf->nstack, buf->offs, buf->len); + buf->stack[buf->nstack].offs = buf->offs; buf->stack[buf->nstack].len = buf->len; buf->nstack++; @@ -87,7 +108,12 @@ buf->offs = buf->len; buf->data = buf->adata + buf->offs; buf->len = 0; + + DM_DBG( + " nstack=%d [offs=%" DM_PRIu_SIZE_T ", len=%" DM_PRIu_SIZE_T "]\n", buf->nstack, buf->offs, buf->len); } + else + DM_DBG("dmGrowBufPush(%p)\n", buf); } @@ -95,17 +121,30 @@ { if (buf != NULL && buf->adata != NULL && buf->nstack > 0) { + DM_DBG("dmGrowBufPop(%p): size=%" DM_PRIu_SIZE_T "\n" + " nstack=%d [offs=%" DM_PRIu_SIZE_T ", len=%" DM_PRIu_SIZE_T "]\n", buf, buf->size, buf->nstack, buf->offs, buf->len); + buf->nstack--; buf->offs = buf->stack[buf->nstack].offs; buf->len += buf->stack[buf->nstack].len; buf->data = buf->adata + buf->offs; + + DM_DBG( + " nstack=%d [offs=%" DM_PRIu_SIZE_T ", len=%" DM_PRIu_SIZE_T "]\n", buf->nstack, buf->offs, buf->len); + } + else + DM_DBG("dmGrowBufPop(%p)\n", buf); } static BOOL dmGrowBufRealloc(DMGrowBuf *buf, const size_t nsize, const BOOL clear) { + DM_DBG("dmGrowBufRealloc(%p): size=%" DM_PRIu_SIZE_T "\n" + " nstack=%d [offs=%" DM_PRIu_SIZE_T ", len=%" DM_PRIu_SIZE_T "]\n", + buf, buf->size, buf->nstack, buf->offs, buf->len); + if ((buf->adata = dmRealloc(buf->adata, nsize)) == NULL) return FALSE;