changeset 1536:064fc2e3ee64

Add compile-time debugging information to DMGrowBuf.
author Matti Hamalainen <ccr@tnsp.org>
date Sat, 12 May 2018 04:12:46 +0300
parents 2f7ff28ea56e
children 776aa43b2c57
files src/dmgrowbuf.c
diffstat 1 files changed, 39 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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;