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