Advertisement
Ember

request

Nov 23rd, 2015
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.56 KB | None | 0 0
  1. Void* Pool::Request(Long size)
  2. {
  3.     Void* pointer = nullptr;
  4.  
  5.     Chunk& fragment = Fragments[0];
  6.     if(fragment.Size > size)
  7.     {
  8.         // Set the return pointer
  9.         pointer = fragment.Handle;
  10.  
  11.         // Shrink the fragment
  12.         fragment.Handle = (Byte*)fragment.Handle + size;
  13.         fragment.Size -= size;
  14.     }
  15.     else if(fragment.Size == size)
  16.     {
  17.         // Set the return pointer
  18.         pointer = fragment.Handle;
  19.  
  20.         // Remove the fragment
  21.         Fragments.Delete(0);
  22.     }
  23.  
  24.     // Done here
  25.     return pointer;
  26. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement