22 #include "ArrayPool.hpp"
25 #include <ErrorReporter.hpp>
55 inline bool empty()
const {
return sz == 0;}
70 T *
getPtr(Uint32 i)
const;
90 if(base == RNIL && n > 0){
91 base = thePool.seizeN(n);
98 ErrorReporter::handleAssert(
"Array<T>::seize failed", __FILE__, __LINE__);
107 thePool.releaseN(base, sz);
127 if(i < sz && base != RNIL){
128 p.p = thePool.getPtr(i + base);
131 ErrorReporter::handleAssert(
"Array::getPtr failed", __FILE__, __LINE__);
134 p.p = thePool.getPtr(i + base);
142 if(ptr.i < sz && base != RNIL){
143 ptr.p = thePool.getPtr(ptr.i + base);
146 ErrorReporter::handleAssert(
"Array<T>::getPtr failed", __FILE__, __LINE__);
149 ptr.p = thePool.getPtr(ptr.i + base);
157 if(i < sz && base != RNIL){
158 return thePool.getPtr(i + base);
160 ErrorReporter::handleAssert(
"Array<T>::getPtr failed", __FILE__, __LINE__);
163 return thePool.getPtr(i + base);