summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRay <[email protected]>2021-09-01 23:41:00 +0200
committerRay <[email protected]>2021-09-01 23:41:00 +0200
commitfa79ae8a3d06f8507724f8afffa5dcac1a5b5c8f (patch)
treedb787c6e28158f6e492df5815e3d9bd5e8903fed
parent9362eaf9c670c86e3ce4045b7465e55db47bddb7 (diff)
parentdfadb3ee379f60f9fdb3d3a1535c716555e05dcc (diff)
downloadraylib-fa79ae8a3d06f8507724f8afffa5dcac1a5b5c8f.tar.gz
raylib-fa79ae8a3d06f8507724f8afffa5dcac1a5b5c8f.zip
Merge branch 'master' of https://github.com/raysan5/raylib
-rw-r--r--src/extras/rmem.h15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/extras/rmem.h b/src/extras/rmem.h
index 7f50adf8..43005cfe 100644
--- a/src/extras/rmem.h
+++ b/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;
}