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); \
|
||||
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
@@ -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); \
|
||||
|
||||
@@ -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
@@ -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; \
|
||||
|
||||
Reference in new issue
Block a user