fix various memory leaks (#1969)
This commit is contained in:
parent
6e76baa6a9
commit
dfadb3ee37
1 changed files with 13 additions and 2 deletions
|
@ -276,7 +276,10 @@ static void __InsertMemNode(MemPool *const mempool, AllocList *const list, MemNo
|
||||||
mempool->arena.offs += iter->size;
|
mempool->arena.offs += iter->size;
|
||||||
__RemoveMemNode(list, iter);
|
__RemoveMemNode(list, iter);
|
||||||
iter = list->head;
|
iter = list->head;
|
||||||
if (iter == NULL) return;
|
if (iter == NULL) {
|
||||||
|
list->head = node;
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
const uintptr_t inode = ( uintptr_t )node;
|
const uintptr_t inode = ( uintptr_t )node;
|
||||||
const uintptr_t iiter = ( uintptr_t )iter;
|
const uintptr_t iiter = ( uintptr_t )iter;
|
||||||
|
@ -293,6 +296,14 @@ static void __InsertMemNode(MemPool *const mempool, AllocList *const list, MemNo
|
||||||
iter->size += node->size;
|
iter->size += node->size;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
else if (iter->next == NULL)
|
||||||
|
{
|
||||||
|
// we reached the end of the free list -> append the node
|
||||||
|
iter->next = node;
|
||||||
|
node->prev = iter;
|
||||||
|
list->len++;
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else if (iter > node)
|
else if (iter > node)
|
||||||
{
|
{
|
||||||
|
@ -326,7 +337,7 @@ static void __InsertMemNode(MemPool *const mempool, AllocList *const list, MemNo
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
__InsertMemNodeBefore(list, iter, node);
|
__InsertMemNodeBefore(list, node, iter);
|
||||||
list->len++;
|
list->len++;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue