Ejemplo n.º 1
0
 void* allocInNewBlock(size_t bytes) {
   size_t capacity = _nextBlockCapacity;
   if (bytes > capacity) capacity = bytes;
   if (!addNewBlock(capacity)) return NULL;
   _nextBlockCapacity *= 2;
   return allocInHead(bytes);
 }
Ejemplo n.º 2
0
 void* allocInNewBlock(size_t bytes) {
   size_t capacity = FIRST_BLOCK_CAPACITY;
   if (_head != NULL) capacity = _head->capacity * 2;
   if (bytes > capacity) capacity = bytes;
   if (!addNewBlock(capacity)) return NULL;
   return allocInHead(bytes);
 }
Ejemplo n.º 3
0
 virtual void* alloc(size_t bytes) {
   alignNextAlloc();
   return canAllocInHead(bytes) ? allocInHead(bytes) : allocInNewBlock(bytes);
 }