Replace M_MEMORY_ALLOC / M_MEMORY_FREE by M_GET_NEW / M_GET_DEL

It allows a dual layer of overloading for the memory.
This commit is contained in:
Patrick Pelissier committed 2017-03-19 22:15:01 +01:00
1 parent eb56e31c18
commit 00f912a504
4 files changed
+33 -21

No files matched your search

+8 -8
View File
@@ -135,7 +135,7 @@
{ \
assert (v != NULL && v->size <= v->alloc); \
M_C3(array_, name, _clean)(v); \
M_MEMORY_FREE(v->ptr); \
M_GET_DEL oplist(v->ptr); \
v->alloc = 0; \
v->ptr = NULL; \
} \
@@ -149,7 +149,7 @@
if (d == s) return; \
if (s->size > d->alloc) { \
size_t alloc = ARRAYI_INC_ALLOC_SIZE(s->size); \
type *ptr = M_MEMORY_REALLOC (type, d->ptr, alloc); \
type *ptr = M_GET_REALLOC oplist (type, d->ptr, alloc); \
if (ptr == NULL) { \
M_MEMORY_FULL(sizeof (type) * alloc); \
return ; \
@@ -220,7 +220,7 @@
assert(v->size == v->alloc); \
size_t alloc = ARRAYI_INC_ALLOC_SIZE(v->alloc); \
assert (alloc > v->size); \
type *ptr = M_MEMORY_REALLOC (type, v->ptr, alloc); \
type *ptr = M_GET_REALLOC oplist (type, v->ptr, alloc); \
if (ptr == NULL) { \
M_MEMORY_FULL(sizeof (type) * alloc); \
return NULL; \
@@ -263,7 +263,7 @@
assert(v->size == v->alloc); \
size_t alloc = ARRAYI_INC_ALLOC_SIZE(v->alloc); \
assert (alloc > v->size); \
type *ptr = M_MEMORY_REALLOC (type, v->ptr, alloc); \
type *ptr = M_GET_REALLOC oplist (type, v->ptr, alloc); \
if (ptr == NULL) { \
M_MEMORY_FULL(sizeof (type) * alloc); \
return; \
@@ -290,7 +290,7 @@
/* Increase size of array */ \
if (size > v->alloc) { \
size_t alloc = size ; \
type *ptr = M_MEMORY_REALLOC (type, v->ptr, alloc); \
type *ptr = M_GET_REALLOC oplist (type, v->ptr, alloc); \
if (ptr == NULL) { \
M_MEMORY_FULL(sizeof (type) * alloc); \
return; \
@@ -314,7 +314,7 @@
/* Increase size of array */ \
if (size > v->alloc) { \
size_t alloc = ARRAYI_INC_ALLOC_SIZE (size) ; \
type *ptr = M_MEMORY_REALLOC (type, v->ptr, alloc); \
type *ptr = M_GET_REALLOC oplist (type, v->ptr, alloc); \
if (ptr == NULL) { \
M_MEMORY_FULL(sizeof (type) * alloc); \
return; \
@@ -388,7 +388,7 @@
size_t size = v->size + (j-i); \
if (size > v->alloc) { \
size_t alloc = ARRAYI_INC_ALLOC_SIZE (size) ; \
type *ptr = M_MEMORY_REALLOC (type, v->ptr, alloc); \
type *ptr = M_GET_REALLOC oplist (type, v->ptr, alloc); \
if (ptr == NULL) { \
M_MEMORY_FULL(sizeof (type) * alloc); \
return; \
@@ -456,7 +456,7 @@
M_C3(array_, name, _shrink_to_fit)(M_C3(array_, name,_t) v) \
{ \
assert (v != NULL && v->size <= v->alloc); \
v->ptr = M_MEMORY_REALLOC (type, v->ptr, v->size); \
v->ptr = M_GET_REALLOC oplist (type, v->ptr, v->size); \
assert(v->ptr != NULL || v->size == 0); \
v->alloc = v->size; \
} \
+2 -2
View File
@@ -77,7 +77,7 @@ static inline void \
m_cond_init(v->there_is_room_for_data); \
} else \
assert(((policy)&BUFFER_UNBLOCKING) == BUFFER_UNBLOCKING); \
v->data = M_MEMORY_REALLOC (type, NULL, BUFFERI_SIZE(m_size)); \
v->data = M_GET_REALLOC oplist (type, NULL, BUFFERI_SIZE(m_size)); \
if (v->data == NULL) { \
M_MEMORY_FULL (BUFFERI_SIZE(m_size)*sizeof(type)); \
return; \
@@ -110,7 +110,7 @@ static inline void \
M_C3(buffer_, name, _clear)(M_C3(buffer_, name,_t) v) \
{ \
M_C3(bufferi_, name, _clear_obj)(v); \
M_MEMORY_FREE (v->data); \
M_GET_DEL oplist (v->data); \
v->data = NULL; \
if (((policy) & BUFFER_THREAD_UNSAFE) != BUFFER_THREAD_UNSAFE) { \
m_mutex_clear(v->mutex); \
+6 -6
View File
@@ -122,7 +122,7 @@
while (it != NULL) { \
struct M_C3(list_, name, _s) *next = it->next; \
M_GET_CLEAR oplist(it->data); \
M_MEMORY_FREE (it); \
M_GET_DEL oplist (it); \
it = next; \
} \
*v = NULL; \
@@ -146,7 +146,7 @@
{ \
assert (v != NULL); \
struct M_C3(list_, name, _s) *next; \
next = M_MEMORY_ALLOC (struct M_C3(list_, name, _s)); \
next = M_GET_NEW oplist (struct M_C3(list_, name, _s)); \
if (next == NULL) { \
M_MEMORY_FULL(sizeof (struct M_C3(list_, name, _s))); \
return NULL; \
@@ -186,7 +186,7 @@
M_GET_CLEAR oplist((*v)->data); \
struct M_C3(list_, name, _s) *tofree = *v; \
*v = (*v)->next; \
M_MEMORY_FREE (tofree); \
M_GET_DEL oplist (tofree); \
} \
\
static inline bool \
@@ -336,7 +336,7 @@
assert (list != NULL && insertion_point != NULL); \
assert(M_C3(list_, name, _sublist_p)(list, insertion_point)); \
struct M_C3(list_, name, _s) *next; \
next = M_MEMORY_ALLOC (struct M_C3(list_, name, _s)); \
next = M_GET_NEW oplist (struct M_C3(list_, name, _s)); \
if (next == NULL) { \
M_MEMORY_FULL(sizeof (struct M_C3(list_, name, _s))); \
return; \
@@ -365,7 +365,7 @@
removing_point->previous->next = next; \
} \
M_GET_CLEAR oplist(removing_point[0].l[0]->data); \
M_MEMORY_FREE (removing_point[0].l[0]); \
M_GET_DEL oplist (removing_point[0].l[0]); \
removing_point[0].l[0] = next; \
} \
\
@@ -404,7 +404,7 @@
update_list = list; \
it_org = *org; \
while (it_org != NULL) { \
next = M_MEMORY_ALLOC (struct M_C3(list_, name, _s)); \
next = M_GET_NEW oplist (struct M_C3(list_, name, _s)); \
*update_list = next; \
if (next == NULL) { \
M_MEMORY_FULL(sizeof (struct M_C3(list_, name, _s))); \
+17 -5
View File
@@ -187,7 +187,7 @@ typedef enum {
} \
assert (n == stack[cpt - 1]); \
M_GET_CLEAR oplist (n->data); \
M_MEMORY_FREE (n); \
M_GET_DEL oplist (n); \
assert((stack[cpt-1] = NULL) == NULL); \
cpt--; \
} \
@@ -211,7 +211,11 @@ typedef enum {
node_t *n = tree->node; \
/* If nothing, create new node */ \
if (n == NULL) { \
n = M_MEMORY_ALLOC(node_t); \
n = M_GET_NEW oplist(node_t); \
if (n == NULL) { \
M_MEMORY_FULL(sizeof (node_t)); \
return; \
} \
M_GET_INIT_SET oplist (n->data, data); \
n->child[0] = n->child[1] = NULL; \
RBTREEI_SET_BLACK (n); \
@@ -246,7 +250,11 @@ typedef enum {
return; \
} \
/* Create new */ \
n = M_MEMORY_ALLOC(node_t); \
n = M_GET_NEW oplist(node_t); \
if (n == NULL) { \
M_MEMORY_FULL (sizeof (node_t)); \
return; \
} \
M_GET_INIT_SET oplist (n->data, data); \
n->child[0] = n->child[1] = NULL; \
RBTREEI_SET_RED (n); \
@@ -522,7 +530,11 @@ typedef enum {
M_C3(rbtreei_,name,_copyn)(const node_t *o) \
{ \
if (o == NULL) return NULL; \
node_t *n = M_MEMORY_ALLOC(node_t); \
node_t *n = M_GET_NEW oplist(node_t); \
if (n == NULL) { \
M_MEMORY_FULL (sizeof (node_t)); \
return NULL; \
} \
M_GET_INIT_SET oplist (n->data, o->data); \
n->child[0] = M_C3(rbtreei_,name,_copyn)(o->child[0]); \
n->child[1] = M_C3(rbtreei_,name,_copyn)(o->child[1]); \
@@ -780,7 +792,7 @@ typedef enum {
if (data_ptr != NULL) \
M_GET_SET oplist (*data_ptr, n->data); \
M_GET_CLEAR oplist (n->data); \
M_MEMORY_FREE (n); \
M_GET_DEL oplist (n); \
tree->size --; \
RBTREEI_CONTRACT (tree); \
return true; \