summaryrefslogtreecommitdiff
path: root/src/lib/memory.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/memory.c')
-rw-r--r--src/lib/memory.c46
1 files changed, 25 insertions, 21 deletions
diff --git a/src/lib/memory.c b/src/lib/memory.c
index 051acba..a8317c7 100644
--- a/src/lib/memory.c
+++ b/src/lib/memory.c
@@ -41,7 +41,9 @@ struct chunk {
unsigned int last:1;
};
+#if APLWC_BUILD_TYPE_DEBUG
static void debug_check_mem(struct aplwc *);
+#endif /* APLWC_BUILD_TYPE_DEBUG */
void
memory_init(struct aplwc *aplwc)
@@ -436,27 +438,6 @@ compact(struct aplwc *aplwc)
}
}
-static void
-debug_check_mem(struct aplwc *aplwc)
-{
- uint64_t size;
- struct chunk *c, *prev;
-
- size = 0;
- prev = NULL;
- for(c = (struct chunk *)aplwc->data; c; prev = c, c = next(c)){
- assert(((uint8_t*)c) < (aplwc->data+aplwc->size));
- assert((c->size % ALIGNMENT) == 0);
- assert(c->stack == NULL);
- size += c->size;
- assert((c->last == 0) != (size == aplwc->size));
- if(c->tag == CHUNK_TAG_FREE)
- assert((prev == NULL) || (prev->tag != CHUNK_TAG_FREE));
- }
-
- assert(size == aplwc->size);
-}
-
static void *
alloc(struct aplwc *aplwc, size_t size, enum chunk_tag tag)
{
@@ -653,3 +634,26 @@ valid_ref(struct aplwc_ref *ref)
{
return (ref->aplwc != NULL) && (ref->ptr != NULL);
}
+
+#if APLWC_BUILD_TYPE_DEBUG
+static void
+debug_check_mem(struct aplwc *aplwc)
+{
+ uint64_t size;
+ struct chunk *c, *prev;
+
+ size = 0;
+ prev = NULL;
+ for(c = (struct chunk *)aplwc->data; c; prev = c, c = next(c)){
+ assert(((uint8_t*)c) < (aplwc->data+aplwc->size));
+ assert((c->size % ALIGNMENT) == 0);
+ assert(c->stack == NULL);
+ size += c->size;
+ assert((c->last == 0) != (size == aplwc->size));
+ if(c->tag == CHUNK_TAG_FREE)
+ assert((prev == NULL) || (prev->tag != CHUNK_TAG_FREE));
+ }
+
+ assert(size == aplwc->size);
+}
+#endif /* APLWC_BUILD_TYPE_DEBUG */