mirror of https://github.com/OpenTTD/OpenTTD
(svn r18993) -Codechange: allow allocating multiple items in a SmallVector with one call.
parent
e437362c7b
commit
c75f19f40b
|
@ -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];
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -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 */
|
||||||
|
|
Loading…
Reference in New Issue