Make the contract of Array & Buffer fail after a clear.

This commit is contained in:
Patrick Pelissier committed 2021-02-21 21:08:35 +01:00
1 parent ed5eac6e9d
commit e25e9ba29b
2 files changed
+7 -2

No files matched your search

+5 -2
View File
@@ -133,6 +133,7 @@
M_ASSERT (a != NULL); \
M_ASSERT (a->size <= a->alloc); \
M_ASSERT (a->size == 0 || a->ptr != NULL); \
M_ASSERT (a->alloc == 0 || a->ptr != NULL); \
} while (0)
/* Deferred evaluation for the array definition,
@@ -205,7 +206,8 @@
M_ARRA4_CONTRACT(v); \
M_C(name, _clean)(v); \
M_CALL_FREE(oplist, v->ptr); \
v->alloc = 0; \
/* This is so reusing the object implies an assertion failure */ \
v->alloc = 1; \
v->ptr = NULL; \
} \
\
@@ -255,7 +257,8 @@
d->size = s->size; \
d->alloc = s->alloc; \
d->ptr = s->ptr; \
s->alloc = 0; \
/* Robustness */ \
s->alloc = 1; \
s->ptr = NULL; \
M_ARRA4_CONTRACT(d); \
} \
+2
View File
@@ -806,6 +806,7 @@ M_C(name, _init)(buffer_t v, size_t size) \
} \
M_CALL_FREE(oplist, buffer->Tab); \
buffer->Tab = NULL; /* safer */ \
buffer->size = 3; \
} \
\
static inline size_t \
@@ -1131,6 +1132,7 @@ M_C(name, _init)(buffer_t v, size_t size) \
} \
M_CALL_FREE(oplist, buffer->Tab); \
buffer->Tab = NULL; /* safer */ \
buffer->size = 3; \
} \
\