开启assert后解决编译和测试问题

This commit is contained in:
建峰 2025-04-28 00:59:03 +08:00
parent d9d5f052b1
commit 4acdcf3ec7
9 changed files with 102 additions and 110 deletions

View File

@ -26,6 +26,7 @@
"graph.h": "c",
"unicstl_config.h": "c",
"iter.h": "c",
"iterator.h": "c"
"iterator.h": "c",
"assert.h": "c"
}
}

View File

@ -11,7 +11,7 @@
#ifndef _UNICSTL_CONFIG_H_
/**
* @brief unicstl container
* @brief unicstl contains which module
*
*/
#define UNICSTL_LIST
@ -27,7 +27,7 @@
* @brief debug
*
*/
#define NDEBUG // assert disable
// #define NDEBUG // assert disable
#define UNICSTL_DEBUG
@ -38,7 +38,6 @@
#define UNICSTL_DEBUG_TREE
#define UNICSTL_DEBUG_HEAP
#define UNICSTL_DEBUG_GRAPH
// #define UNICSTL_DEBUG_ITERATOR
#endif
#endif

View File

@ -298,7 +298,7 @@ static void deque_print(struct _deque* self)
bool deque_iter_hasnext(struct _iterator* iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
deque_t self = (deque_t)iter->_container;
if(iter->_index < self->size(self))
@ -311,7 +311,7 @@ bool deque_iter_hasnext(struct _iterator* iter)
const void* deque_iter_next(struct _iterator* iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
deque_t self = (deque_t)iter->_container;
void *obj = NULL;

View File

@ -825,7 +825,7 @@ static struct _graph_node * graph_find_next_unvisited_target(struct _graph *self
bool graph_iter_hasnext(struct _iterator *iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
graph_t self = (graph_t)iter->_container;
if (iter->_index < self->size(self))
@ -838,7 +838,7 @@ bool graph_iter_hasnext(struct _iterator *iter)
const void *graph_iter_next(struct _iterator *iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
graph_t self = (graph_t)iter->_container;
void *obj = NULL;

View File

@ -252,7 +252,7 @@ static void heap_print(struct _heap* self)
bool heap_iter_hasnext(struct _iterator* iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
heap_t self = (heap_t)iter->_container;
if(iter->_index < self->size(self))
@ -265,7 +265,7 @@ bool heap_iter_hasnext(struct _iterator* iter)
const void* heap_iter_next(struct _iterator* iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
heap_t self = (heap_t)iter->_container;
void *obj = NULL;

View File

@ -214,8 +214,6 @@ iterator_t list_iter(struct _list* self)
static bool list_init2(struct _list* list, uint32_t obj_size, uint32_t capacity)
{
assert(list != NULL);
assert(obj_size > 0);
assert(capacity > 0);
if(list == NULL || obj_size == 0 || capacity == 0)
{
return false;

View File

@ -309,7 +309,7 @@ static void queue2_print(struct _queue* self)
static bool queue_iter_hasnext(struct _iterator* iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
queue_t self = (queue_t)iter->_container;
if(iter->_index < self->size(self))
@ -322,7 +322,7 @@ static bool queue_iter_hasnext(struct _iterator* iter)
static const void* queue_iter_next(struct _iterator* iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
queue_t self = (queue_t)iter->_container;
void *obj = NULL;
@ -355,7 +355,7 @@ static iterator_t queue_iter(struct _queue* self)
static const void* queue2_iter_next(struct _iterator* iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
queue_t self = (queue_t)iter->_container;
void *obj = NULL;
@ -385,7 +385,6 @@ static iterator_t queue2_iter(struct _queue* self)
static bool queue_init(struct _queue * self, uint32_t obj_size)
{
assert(self != NULL);
assert(obj_size > 0);
if(self == NULL || obj_size == 0)
{
return false;
@ -430,8 +429,6 @@ static bool queue_init(struct _queue * self, uint32_t obj_size)
static bool queue_init2(struct _queue * self, uint32_t obj_size, uint32_t capacity)
{
assert(self != NULL);
assert(obj_size > 0);
assert(capacity > 0);
if(self == NULL || obj_size == 0 || capacity == 0)
{
return false;

View File

@ -257,7 +257,7 @@ static void stack2_print(struct _stack* self)
bool stack_iter_hasnext(struct _iterator* iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
stack_t self = (stack_t)iter->_container;
if(iter->_index < self->size(self))
@ -274,7 +274,7 @@ bool stack_iter_hasnext(struct _iterator* iter)
const void* stack_iter_next(struct _iterator* iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
stack_t self = (stack_t)iter->_container;
void *obj = NULL;

View File

@ -591,93 +591,6 @@ static bool tree_avl_delete(struct _tree* self, void* obj)
return true;
}
static bool tree_clear(struct _tree* self)
{
assert(self != NULL);
if (self->_root == NULL)
{
// return false;
return true;
}
struct _tree_node* node = self->_root;
queue_t queue = queue_new(sizeof(struct _tree_node*));
queue->push(queue, &node);
while (!queue->empty(queue))
{
queue->pop(queue, &node);
if (node->left != NULL)
{
queue->push(queue, &node->left);
}
if (node->right != NULL)
{
queue->push(queue, &node->right);
}
tree_node_free(&node);
}
queue_free(&queue);
self->_root = NULL;
self->_size = 0;
return true;
}
static bool tree_empty(struct _tree* self)
{
assert(self != NULL);
return !self->size(self);
}
static uint32_t tree_size(struct _tree* self)
{
assert(self != NULL);
return self->_size;
}
// free
static void tree_destory(struct _tree* self)
{
assert(self != NULL);
self->clear(self);
self->_root = NULL;
if (self->stack != NULL)
{
stack_free(&self->stack);
}
if (self->queue != NULL)
{
queue_free(&self->queue);
}
}
static bool tree_min(struct _tree* self, void* obj)
{
assert(self != NULL);
struct _tree_node* node = tree_find_min(self, self->_root);
if (node == NULL)
{
return false;
}
memmove(obj, node->obj, self->_obj_size);
return true;
}
static bool tree_max(struct _tree* self, void* obj)
{
assert(self != NULL);
struct _tree_node* node = tree_find_max(self, self->_root);
if (node == NULL)
{
return false;
}
memmove(obj, node->obj, self->_obj_size);
return true;
}
static rbt_color tree_color(struct _tree_node* node)
{
assert(node != NULL);
@ -691,7 +604,6 @@ static bool tree_set_color(struct _tree_node* node, rbt_color color)
return true;
}
static struct _tree_node* tree_rb_turn_left(struct _tree* self, struct _tree_node* root)
{
assert(self != NULL);
@ -1128,15 +1040,100 @@ static bool tree_rb_delete(struct _tree* self, void* obj)
return true;
}
static bool tree_empty(struct _tree* self)
{
assert(self != NULL);
return !self->size(self);
}
static uint32_t tree_size(struct _tree* self)
{
assert(self != NULL);
return self->_size;
}
static bool tree_clear(struct _tree* self)
{
assert(self != NULL);
if (self->_root == NULL)
{
// return false;
return true;
}
struct _tree_node* node = self->_root;
queue_t queue = queue_new(sizeof(struct _tree_node*));
queue->push(queue, &node);
while (!queue->empty(queue))
{
queue->pop(queue, &node);
if (node->left != NULL)
{
queue->push(queue, &node->left);
}
if (node->right != NULL)
{
queue->push(queue, &node->right);
}
tree_node_free(&node);
}
queue_free(&queue);
self->_root = NULL;
self->_size = 0;
return true;
}
static void tree_destory(struct _tree* self)
{
assert(self != NULL);
self->clear(self);
self->_root = NULL;
if (self->stack != NULL)
{
stack_free(&self->stack);
}
if (self->queue != NULL)
{
queue_free(&self->queue);
}
}
static uint32_t tree_height(struct _tree* self)
{
return tree_height_node(self, self->_root);
}
static bool tree_min(struct _tree* self, void* obj)
{
assert(self != NULL);
struct _tree_node* node = tree_find_min(self, self->_root);
if (node == NULL)
{
return false;
}
memmove(obj, node->obj, self->_obj_size);
return true;
}
static bool tree_max(struct _tree* self, void* obj)
{
assert(self != NULL);
struct _tree_node* node = tree_find_max(self, self->_root);
if (node == NULL)
{
return false;
}
memmove(obj, node->obj, self->_obj_size);
return true;
}
static bool tree_iter_hasnext(struct _iterator* iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
tree_t self = (tree_t)iter->_container;
if(iter->_index < self->size(self))
@ -1149,7 +1146,7 @@ static bool tree_iter_hasnext(struct _iterator* iter)
static const void* tree_iter_next(struct _iterator* iter)
{
assert(iter != NULL);
assert(iter->parent != NULL);
assert(iter->_container != NULL);
tree_t self = (tree_t)iter->_container;
void *obj = NULL;