diff --git a/src/deque.h b/src/deque.h index 736a83a..b689bfb 100644 --- a/src/deque.h +++ b/src/deque.h @@ -110,8 +110,7 @@ return NULL; \ } \ \ - for (size_t i = 0; i < size; i++) \ - _deque_->buffer[i] = 0; \ + memset(_deque_->buffer, 0, sizeof(V) * size); \ \ _deque_->capacity = size; \ _deque_->count = 0; \ @@ -307,7 +306,7 @@ iter->cursor = iter->target->front; \ iter->count = 0; \ iter->start = true; \ - iter->end = false; \ + iter->end = PFX##_empty(iter->target); \ } \ \ FMOD void PFX##_iter_toend(SNAME##_iter *iter) \ @@ -318,7 +317,7 @@ iter->cursor = (iter->target->rear == 0) ? iter->target->count - 1 : iter->target->rear - 1; \ \ iter->count = iter->target->count - 1; \ - iter->start = false; \ + iter->start = PFX##_empty(iter->target); \ iter->end = true; \ } \ \ diff --git a/src/heap.h b/src/heap.h index c683f0b..a17ec78 100644 --- a/src/heap.h +++ b/src/heap.h @@ -17,7 +17,7 @@ #include #include -#include +#include typedef enum HeapOrder { @@ -119,10 +119,7 @@ typedef enum HeapOrder return NULL; \ } \ \ - for (size_t i = 0; i < size; i++) \ - { \ - _heap_->buffer[i] = 0; \ - } \ + memset(_heap_->buffer, 0, sizeof(V) * size); \ \ _heap_->capacity = size; \ _heap_->count = 0; \ @@ -334,13 +331,13 @@ typedef enum HeapOrder { \ iter->cursor = 0; \ iter->start = true; \ - iter->end = false; \ + iter->end = PFX##_empty(iter->target); \ } \ \ FMOD void PFX##_iter_toend(SNAME##_iter *iter) \ { \ iter->cursor = iter->target->count - 1; \ - iter->start = false; \ + iter->start = PFX##_empty(iter->target); \ iter->end = true; \ } \ \ diff --git a/src/linkedlist.h b/src/linkedlist.h index cfcd382..0b21eda 100644 --- a/src/linkedlist.h +++ b/src/linkedlist.h @@ -508,14 +508,14 @@ iter->cursor = iter->target->head; \ iter->index = 0; \ iter->start = true; \ - iter->end = false; \ + iter->end = PFX##_empty(iter->target); \ } \ \ FMOD void PFX##_iter_toend(SNAME##_iter *iter) \ { \ iter->cursor = iter->target->tail; \ iter->index = iter->target->count - 1; \ - iter->start = false; \ + iter->start = PFX##_empty(iter->target); \ iter->end = true; \ } \ \ diff --git a/src/list.h b/src/list.h index 66ffd61..c835fa4 100644 --- a/src/list.h +++ b/src/list.h @@ -17,6 +17,7 @@ #include #include +#include #define LIST_GENERATE(PFX, SNAME, FMOD, K, V) \ LIST_GENERATE_STRUCT(PFX, SNAME, FMOD, K, V) \ @@ -108,6 +109,8 @@ return NULL; \ } \ \ + memset(_list_->buffer, 0, sizeof(V) * size); \ + \ for (size_t i = 0; i < size; i++) \ { \ _list_->buffer[i] = 0; \ @@ -342,13 +345,13 @@ { \ iter->cursor = 0; \ iter->start = true; \ - iter->end = false; \ + iter->end = PFX##_empty(iter->target); \ } \ \ FMOD void PFX##_iter_toend(SNAME##_iter *iter) \ { \ iter->cursor = iter->target->count - 1; \ - iter->start = false; \ + iter->start = PFX##_empty(iter->target); \ iter->end = true; \ } \ \ diff --git a/src/queue.h b/src/queue.h index 46e1d0f..e5d0ada 100644 --- a/src/queue.h +++ b/src/queue.h @@ -17,6 +17,7 @@ #include #include +#include #define QUEUE_GENERATE(PFX, SNAME, FMOD, K, V) \ QUEUE_GENERATE_STRUCT(PFX, SNAME, FMOD, K, V) \ @@ -105,10 +106,7 @@ return NULL; \ } \ \ - for (size_t i = 0; i < size; i++) \ - { \ - _queue_->buffer[i] = 0; \ - } \ + memset(_queue_->buffer, 0, sizeof(V) * size); \ \ _queue_->capacity = size; \ _queue_->count = 0; \ @@ -247,7 +245,7 @@ iter->cursor = iter->target->front; \ iter->count = 0; \ iter->start = true; \ - iter->end = false; \ + iter->end = PFX##_empty(iter->target); \ } \ \ FMOD void PFX##_iter_toend(SNAME##_iter *iter) \ @@ -258,7 +256,7 @@ iter->cursor = (iter->target->rear == 0) ? iter->target->count - 1 : iter->target->rear - 1; \ \ iter->count = iter->target->count - 1; \ - iter->start = false; \ + iter->start = PFX##_empty(iter->target); \ iter->end = true; \ } \ \ diff --git a/src/stack.h b/src/stack.h index 8b4bee6..8a986be 100644 --- a/src/stack.h +++ b/src/stack.h @@ -17,6 +17,7 @@ #include #include +#include #define STACK_GENERATE(PFX, SNAME, FMOD, K, V) \ STACK_GENERATE_STRUCT(PFX, SNAME, FMOD, K, V) \ @@ -102,10 +103,7 @@ return NULL; \ } \ \ - for (size_t i = 0; i < size; i++) \ - { \ - _stack_->buffer[i] = 0; \ - } \ + memset(_stack_->buffer, 0, sizeof(V) * size); \ \ _stack_->capacity = size; \ _stack_->count = 0; \ @@ -223,13 +221,13 @@ { \ iter->cursor = iter->target->count - 1; \ iter->start = true; \ - iter->end = false; \ + iter->end = PFX##_empty(iter->target); \ } \ \ FMOD void PFX##_iter_toend(SNAME##_iter *iter) \ { \ iter->cursor = 0; \ - iter->start = false; \ + iter->start = PFX##_empty(iter->target); \ iter->end = true; \ } \ \