1
0
Fork 0

(svn r18993) -Codechange: allow allocating multiple items in a SmallVector with one call.

release/1.0
rubidium 2010-02-03 17:25:56 +00:00
parent e437362c7b
commit c75f19f40b
2 changed files with 9 additions and 5 deletions

View File

@ -76,16 +76,20 @@ public:
/** /**
* Append an item and return it. * Append an item and return it.
* @param to_add the number of items to append
* @return pointer to newly allocated item * @return pointer to newly allocated item
*/ */
FORCEINLINE T *Append() FORCEINLINE T *Append(size_t to_add = 1)
{ {
if (this->items == this->capacity) { size_t begin = this->items;
this->capacity += S; this->items += to_add;
if (this->items > this->capacity) {
this->capacity = Align(this->items, S);
this->data = ReallocT(this->data, this->capacity); this->data = ReallocT(this->data, this->capacity);
} }
return &this->data[this->items++]; return &this->data[begin];
} }
/** /**

View File

@ -18,7 +18,7 @@
#include "sound_func.h" #include "sound_func.h"
#include "core/mem_func.hpp" #include "core/mem_func.hpp"
static SmallVector<SoundEntry, ORIGINAL_SAMPLE_COUNT> _sounds; static SmallVector<SoundEntry, 8> _sounds;
/* Allocate a new Sound */ /* Allocate a new Sound */