#SquirrelJME: So I fixed the issue! In the allocator, I was only marking chunks as used if they had to be split because they were too big! So if an allocation of the same size were done, then it would choose a used block (marked free) and then use that pointer.