inline void *Heap::AllocSz(size_t& sz) { Stat(sz); if(sz <= 224) { if(sz == 0) sz = 1; int k = ((int)sz - 1) >> 4; sz = (k + 1) << 4; return Allok(k); } if(sz <= 576) { int k; if(sz <= 368) if(sz <= 288) sz = 288, k = 14; else sz = 368, k = 15; else if(sz <= 448) sz = 448, k = 16; else sz = 576, k = 17; return Allok(k); } return LAlloc(sz); }
inline void *Heap::Alloc(size_t sz) { Stat(sz); if(sz <= 224) { if(sz == 0) sz = 1; return Allok(((int)sz - 1) >> 4); } if(sz <= 576) return Allok(sz <= 368 ? sz <= 288 ? 14 : 15 : sz <= 448 ? 16 : 17); return LAlloc(sz); }
force_inline void *Heap::AllocSz(size_t& sz) { Stat(sz); if(sz <= 384) { if(sz == 0) sz = 1; int k = ((int)sz - 1) >> 5; sz = (k + 1) << 5; return Allok(k); } if(sz <= 992) { if(sz <= 448) { sz = 448; return Allok(12); } if(sz <= 576) { sz = 576; return Allok(13); } if(sz <= 672) { sz = 672; return Allok(14); } if(sz <= 800) { sz = 800; return Allok(15); } sz = 992; return Allok(16); } return LAlloc(sz); }
force_inline void *Heap::Alloc48() { Stat(48); return Allok(KLASS_48); }
force_inline void *Heap::Alloc32() { Stat(32); return Allok(KLASS_32); }
inline void *Heap::Alloc48() { Stat(48); return Allok(2); }
inline void *Heap::Alloc32() { Stat(32); return Allok(1); }