Added clear functions

This commit is contained in:
Leonardo committed 2019-04-04 12:53:34 -03:00
1 parent fb3a0efc6e
commit 5ec77e6269
11 files changed
+94 -4

No files matched your search

+10
View File
@@ -64,6 +64,7 @@
typedef struct SNAME##_iter_s SNAME##_iter; \
\
FMOD SNAME *PFX##_new(size_t size); \
FMOD void PFX##_clear(SNAME *_deque_); \
FMOD void PFX##_free(SNAME *_deque_); \
FMOD bool PFX##_push_front(SNAME *_deque_, V element); \
FMOD bool PFX##_push_back(SNAME *_deque_, V element); \
@@ -121,6 +122,15 @@
return _deque_; \
} \
\
FMOD void PFX##_clear(SNAME *_deque_) \
{ \
memset(_deque_->buffer, 0, sizeof(V) * _deque_->capacity); \
\
_deque_->count = 0; \
_deque_->front = 0; \
_deque_->rear = 0; \
} \
\
FMOD void PFX##_free(SNAME *_deque_) \
{ \
free(_deque_->buffer); \
+8
View File
@@ -96,6 +96,7 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 193, 389, 769, 1543, 3079,
typedef struct SNAME##_iter_s SNAME##_iter; \
\
FMOD SNAME *PFX##_new(size_t size, double load, int (*compare)(K, K), size_t (*hash)(K)); \
FMOD void PFX##_clear(SNAME *_map_); \
FMOD void PFX##_free(SNAME *_map_); \
FMOD bool PFX##_insert(SNAME *_map_, K key, V value); \
FMOD bool PFX##_remove(SNAME *_map_, K key, V *value); \
@@ -153,6 +154,13 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 193, 389, 769, 1543, 3079,
return _map_; \
} \
\
FMOD void PFX##_clear(SNAME *_map_) \
{ \
memset(_map_->buffer, 0, sizeof(SNAME##_entry) * _map_->capacity); \
\
_map_->count = 0; \
} \
\
FMOD void PFX##_free(SNAME *_map_) \
{ \
free(_map_->buffer); \
+8
View File
@@ -95,6 +95,7 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 193, 389, 769, 1543, 3079,
typedef struct SNAME##_iter_s SNAME##_iter; \
\
FMOD SNAME *PFX##_new(size_t size, double load, int (*compare)(V, V), size_t (*hash)(V)); \
FMOD void PFX##_clear(SNAME *_set_); \
FMOD void PFX##_free(SNAME *_set_); \
FMOD bool PFX##_insert(SNAME *_set_, V element); \
FMOD bool PFX##_remove(SNAME *_set_, V element); \
@@ -156,6 +157,13 @@ static const size_t cmc_hashtable_primes[] = {53, 97, 193, 389, 769, 1543, 3079,
return _set_; \
} \
\
FMOD void PFX##_clear(SNAME *_set_) \
{ \
memset(_set_->buffer, 0, sizeof(SNAME##_entry) * _set_->capacity); \
\
_set_->count = 0; \
} \
\
FMOD void PFX##_free(SNAME *_set_) \
{ \
free(_set_->buffer); \
+8
View File
@@ -69,6 +69,7 @@ typedef enum HeapOrder
typedef struct SNAME##_iter_s SNAME##_iter; \
\
FMOD SNAME *PFX##_new(size_t size, HeapOrder HO, int (*compare)(V, V)); \
FMOD void PFX##_clear(SNAME *_heap_); \
FMOD void PFX##_free(SNAME *_heap_); \
FMOD bool PFX##_insert(SNAME *_heap_, V element); \
FMOD bool PFX##_remove(SNAME *_heap_, V *result); \
@@ -129,6 +130,13 @@ typedef enum HeapOrder
return _heap_; \
} \
\
FMOD void PFX##_clear(SNAME *_heap_) \
{ \
memset(_heap_->buffer, 0, sizeof(V) * _heap_->capacity); \
\
_heap_->count = 0; \
} \
\
FMOD void PFX##_free(SNAME *_heap_) \
{ \
free(_heap_->buffer); \
+13 -1
View File
@@ -70,6 +70,7 @@
typedef struct SNAME##_iter_s SNAME##_iter; \
\
FMOD SNAME *PFX##_new(void); \
FMOD void PFX##_clear(SNAME *_list_); \
FMOD void PFX##_free(SNAME *_list_); \
FMOD bool PFX##_push_front(SNAME *_list_, V element); \
FMOD bool PFX##_push(SNAME *_list_, V element, size_t index); \
@@ -122,15 +123,26 @@
return _list_; \
} \
\
FMOD void PFX##_free(SNAME *_list_) \
FMOD void PFX##_clear(SNAME *_list_) \
{ \
SNAME##_node *scan = _list_->head; \
\
while (_list_->head != NULL) \
{ \
_list_->head = _list_->head->next; \
free(scan); \
scan = _list_->head; \
} \
\
_list_->count = 0; \
_list_->head = NULL; \
_list_->tail = NULL; \
} \
\
FMOD void PFX##_free(SNAME *_list_) \
{ \
PFX##_clear(_list_); \
\
free(_list_); \
} \
\
+8
View File
@@ -61,6 +61,7 @@
typedef struct SNAME##_iter_s SNAME##_iter; \
\
FMOD SNAME *PFX##_new(size_t size); \
FMOD void PFX##_clear(SNAME *_list_); \
FMOD void PFX##_free(SNAME *_list_); \
FMOD bool PFX##_push_front(SNAME *_list_, V element); \
FMOD bool PFX##_push(SNAME *_list_, V element, size_t index); \
@@ -122,6 +123,13 @@
return _list_; \
} \
\
FMOD void PFX##_clear(SNAME *_list_) \
{ \
memset(_list_->buffer, 0, sizeof(V) * _list_->capacity); \
\
_list_->count = 0; \
} \
\
FMOD void PFX##_free(SNAME *_list_) \
{ \
free(_list_->buffer); \
+10
View File
@@ -64,6 +64,7 @@
typedef struct SNAME##_iter_s SNAME##_iter; \
\
FMOD SNAME *PFX##_new(size_t size); \
FMOD void PFX##_clear(SNAME *_queue_); \
FMOD void PFX##_free(SNAME *_queue_); \
FMOD bool PFX##_enqueue(SNAME *_queue_, V element); \
FMOD bool PFX##_dequeue(SNAME *_queue_); \
@@ -116,6 +117,15 @@
return _queue_; \
} \
\
FMOD void PFX##_clear(SNAME *_queue_) \
{ \
memset(_queue_->buffer, 0, sizeof(V) * _queue_->capacity); \
\
_queue_->count = 0; \
_queue_->front = 0; \
_queue_->rear = 0; \
} \
\
FMOD void PFX##_free(SNAME *_queue_) \
{ \
free(_queue_->buffer); \
+8
View File
@@ -61,6 +61,7 @@
typedef struct SNAME##_iter_s SNAME##_iter; \
\
FMOD SNAME *PFX##_new(size_t size); \
FMOD void PFX##_clear(SNAME *_stack_); \
FMOD void PFX##_free(SNAME *_stack_); \
FMOD bool PFX##_push(SNAME *_stack_, V element); \
FMOD bool PFX##_pop(SNAME *_stack_); \
@@ -111,6 +112,13 @@
return _stack_; \
} \
\
FMOD void PFX##_clear(SNAME *_stack_) \
{ \
memset(_stack_->buffer, 0, sizeof(V) * _stack_->capacity); \
\
_stack_->count = 0; \
} \
\
FMOD void PFX##_free(SNAME *_stack_) \
{ \
free(_stack_->buffer); \
+10 -1
View File
@@ -74,6 +74,7 @@
typedef struct SNAME##_iter_s SNAME##_iter; \
\
FMOD SNAME *PFX##_new(int (*compare)(K, K)); \
FMOD void PFX##_clear(SNAME *_map_); \
FMOD void PFX##_free(SNAME *_map_); \
FMOD bool PFX##_insert(SNAME *_map_, K key, V value); \
FMOD bool PFX##_remove(SNAME *_map_, K key, V *value); \
@@ -118,7 +119,7 @@
return _map_; \
} \
\
FMOD void PFX##_free(SNAME *_map_) \
FMOD void PFX##_clear(SNAME *_map_) \
{ \
SNAME##_node *scan = _map_->root; \
SNAME##_node *up = NULL; \
@@ -169,6 +170,14 @@
} \
} \
\
_map_->count = 0; \
_map_->root = NULL; \
} \
\
FMOD void PFX##_free(SNAME *_map_) \
{ \
PFX##_clear(_map_); \
\
free(_map_); \
} \
\
+10 -1
View File
@@ -73,6 +73,7 @@
typedef struct SNAME##_iter_s SNAME##_iter; \
\
FMOD SNAME *PFX##_new(int (*compare)(V, V)); \
FMOD void PFX##_clear(SNAME *_set_); \
FMOD void PFX##_free(SNAME *_set_); \
FMOD bool PFX##_insert(SNAME *_set_, V element); \
FMOD bool PFX##_remove(SNAME *_set_, V element); \
@@ -121,7 +122,7 @@
return _set_; \
} \
\
FMOD void PFX##_free(SNAME *_set_) \
FMOD void PFX##_clear(SNAME *_set_) \
{ \
SNAME##_node *scan = _set_->root; \
SNAME##_node *up = NULL; \
@@ -172,6 +173,14 @@
} \
} \
\
_set_->count = 0; \
_set_->root = NULL; \
} \
\
FMOD void PFX##_free(SNAME *_set_) \
{ \
PFX##_clear(_set_); \
\
free(_set_); \
} \
\
+1 -1
View File
@@ -210,7 +210,7 @@ int main(int argc, char const *argv[])
ts_free(ts);
tm_free(tm);
hs_free(hs);
tm_free(hm);
hm_free(hm);
return 0;
}