Преглед на файлове

fix various memory leaks (#1969)

pull/1977/head
atticus преди 3 години
committed by GitHub
родител
ревизия
dfadb3ee37
No known key found for this signature in database GPG ключ ID: 4AEE18F83AFDEB23
променени са 1 файла, в които са добавени 13 реда и са изтрити 2 реда
  1. +13
    -2
      src/extras/rmem.h

+ 13
- 2
src/extras/rmem.h Целия файл

@ -276,7 +276,10 @@ static void __InsertMemNode(MemPool *const mempool, AllocList *const list, MemNo
mempool->arena.offs += iter->size;
__RemoveMemNode(list, iter);
iter = list->head;
if (iter == NULL) return;
if (iter == NULL) {
list->head = node;
return;
}
}
const uintptr_t inode = ( uintptr_t )node;
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;
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)
{
@ -326,7 +337,7 @@ static void __InsertMemNode(MemPool *const mempool, AllocList *const list, MemNo
}
else
{
__InsertMemNodeBefore(list, iter, node);
__InsertMemNodeBefore(list, node, iter);
list->len++;
return;
}

Зареждане…
Отказ
Запис