| 162 | delete mTail; |
| 163 | } |
| 164 | inline void push(T inObj) |
| 165 | { |
| 166 | if (mHeadPos<1024) |
| 167 | { |
| 168 | mHead->mElems[mHeadPos++] = inObj; |
| 169 | return; |
| 170 | } |
| 171 | if (mHead != mTail) |
| 172 | mActive.push(mHead); |
| 173 | mHead = mSpare.empty() ? new Slab : mSpare.pop(); |
| 174 | mHead->mElems[0] = inObj; |
| 175 | mHeadPos = 1; |
| 176 | } |
| 177 | inline bool some_left() { return mHead!=mTail || mHeadPos!=mTailPos; } |
| 178 | inline T pop() |
| 179 | { |