Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Void* Pool::Request(Long size)
- {
- Void* pointer = nullptr;
- Chunk& fragment = Fragments[0];
- if(fragment.Size > size)
- {
- // Set the return pointer
- pointer = fragment.Handle;
- // Shrink the fragment
- fragment.Handle = (Byte*)fragment.Handle + size;
- fragment.Size -= size;
- }
- else if(fragment.Size == size)
- {
- // Set the return pointer
- pointer = fragment.Handle;
- // Remove the fragment
- Fragments.Delete(0);
- }
- // Done here
- return pointer;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement