summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/mem.c93
1 files changed, 48 insertions, 45 deletions
diff --git a/src/mem.c b/src/mem.c
index 44ebc62..f1ea97c 100644
--- a/src/mem.c
+++ b/src/mem.c
@@ -41,6 +41,8 @@
#include "calcurse.h"
+#ifdef CALCURSE_MEMORY_DEBUG
+
enum {
BLK_STATE,
BLK_SIZE,
@@ -67,49 +69,8 @@ struct mem_stats {
static struct mem_stats mstats;
+#endif /* CALCURSE_MEMORY_DEBUG */
-static unsigned
-stats_add_blk (size_t size, const char *pos)
-{
- struct mem_blk *o, **i;
-
- o = malloc (sizeof (*o));
- EXIT_IF (o == NULL, _("could not allocate memory to store block info"));
-
- mstats.ncall++;
-
- o->pos = pos;
- o->size = (unsigned)size;
- o->next = 0;
-
- for (i = &mstats.blk; *i; i = &(*i)->next)
- ;
- o->id = mstats.ncall;
- *i = o;
-
- return o->id;
-}
-
-static void
-stats_del_blk (unsigned id)
-{
- struct mem_blk *o, **i;
-
- i = &mstats.blk;
- for (o = mstats.blk; o; o = o->next)
- {
- if (o->id == id)
- {
- *i = o->next;
- free (o);
- return;
- }
- i = &o->next;
- }
-
- EXIT (_("Block not found"));
- /* NOTREACHED */
-}
void *
xmalloc (size_t size)
@@ -170,6 +131,51 @@ xfree (void *p)
free (p);
}
+#ifdef CALCURSE_MEMORY_DEBUG
+
+static unsigned
+stats_add_blk (size_t size, const char *pos)
+{
+ struct mem_blk *o, **i;
+
+ o = malloc (sizeof (*o));
+ EXIT_IF (o == NULL, _("could not allocate memory to store block info"));
+
+ mstats.ncall++;
+
+ o->pos = pos;
+ o->size = (unsigned)size;
+ o->next = 0;
+
+ for (i = &mstats.blk; *i; i = &(*i)->next)
+ ;
+ o->id = mstats.ncall;
+ *i = o;
+
+ return o->id;
+}
+
+static void
+stats_del_blk (unsigned id)
+{
+ struct mem_blk *o, **i;
+
+ i = &mstats.blk;
+ for (o = mstats.blk; o; o = o->next)
+ {
+ if (o->id == id)
+ {
+ *i = o->next;
+ free (o);
+ return;
+ }
+ i = &o->next;
+ }
+
+ EXIT (_("Block not found"));
+ /* NOTREACHED */
+}
+
void *
dbg_malloc (size_t size, const char *pos)
{
@@ -278,9 +284,6 @@ dbg_free (void *ptr, const char *pos)
mstats.nfree += size;
}
-
-#ifdef CALCURSE_MEMORY_DEBUG
-
static void
dump_block_info (struct mem_blk *blk)
{