MCPcopy Create free account
hub / github.com/JayXon/Leanify / DynArray

Class DynArray

lib/tinyxml2/tinyxml2.h:215–318  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

213*/
214template <class T, int INIT>
215class DynArray
216{
217public:
218 DynArray() {
219 _mem = _pool;
220 _allocated = INIT;
221 _size = 0;
222 }
223
224 ~DynArray() {
225 if ( _mem != _pool ) {
226 delete [] _mem;
227 }
228 }
229
230 void Clear() {
231 _size = 0;
232 }
233
234 void Push( T t ) {
235 TIXMLASSERT( _size < INT_MAX );
236 EnsureCapacity( _size+1 );
237 _mem[_size++] = t;
238 }
239
240 T* PushArr( int count ) {
241 TIXMLASSERT( count >= 0 );
242 TIXMLASSERT( _size <= INT_MAX - count );
243 EnsureCapacity( _size+count );
244 T* ret = &_mem[_size];
245 _size += count;
246 return ret;
247 }
248
249 T Pop() {
250 TIXMLASSERT( _size > 0 );
251 return _mem[--_size];
252 }
253
254 void PopArr( int count ) {
255 TIXMLASSERT( _size >= count );
256 _size -= count;
257 }
258
259 bool Empty() const {
260 return _size == 0;
261 }
262
263 T& operator[](int i) {
264 TIXMLASSERT( i>= 0 && i < _size );
265 return _mem[i];
266 }
267
268 const T& operator[](int i) const {
269 TIXMLASSERT( i>= 0 && i < _size );
270 return _mem[i];
271 }
272

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected