提交 cd16bd7a authored 作者: 周尚's avatar 周尚

修复内存泄漏

上级 8310e6b0
......@@ -87,14 +87,12 @@ void AWList_add_tail(AWList* list, void* data, void (*delete_func)(void*))
void AWList_delete_node(AWList* list, AWNode* node)
{
if (list->head == NULL || node == NULL || node->delete_func == NULL) return;
if (list->head == node)
{
list->curr = list->head = list->head->next;
if (list->head == NULL)
{
list->curr = list->head = list->tail = NULL;
return;
}
}
else
{
......@@ -102,13 +100,14 @@ void AWList_delete_node(AWList* list, AWNode* node)
for (; tmp->next && tmp->next != node; tmp = tmp->next)
{
}
tmp->next = node->next;
if (tmp->next == node)
tmp->next = node->next;
else
return;
}
if (node->delete_func)
{
node->delete_func(node->data);
}
node->delete_func(node->data);
free(node);
node = NULL;
list->cnt -= 1;
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论