m::i32 add(Args...args) { reallocBuffer(); m_index[m_size] = m_buffer + m_size; new (m_buffer + m_size) T(std::forward<Args>(args)...); return m_size++; }
m::i32 add(const T& defaultValue) { reallocBuffer(); m_index[m_size] = m_buffer + m_size; new (m_buffer + m_size) T(defaultValue); return m_size++; }
//---------------------- // //---------------------- m::i32 add() { reallocBuffer(); m_index[m_size] = m_buffer + m_size; new (m_buffer + m_size) T(); return m_size++; }
void ARSTREAM_ReaderTb_initMultiBuffers (int initialSize) { int buffIndex; for (buffIndex = 0; buffIndex < NB_BUFFERS; buffIndex++) { reallocBuffer (buffIndex, initialSize); multiBufferIsFree[buffIndex] = 1; } }
void DrawNode3D::ensureCapacity(int count) { CCASSERT(count>=0, "capacity must be >= 0"); if(_bufferCount + count > _bufferCapacity) { _bufferCapacity += MAX(_bufferCapacity, count); reallocBuffer(); } }
uint8_t* ARSTREAM_ReaderTb_GetNextFreeBuffer (uint32_t *retSize, int reallocToDouble) { uint8_t *retBuffer = NULL; int nbtest = 0; if (retSize == NULL) { return NULL; } do { if (multiBufferIsFree[currentBufferIndex] == 1) { if (reallocToDouble != 0) { reallocBuffer (currentBufferIndex, 2* multiBufferSize [currentBufferIndex]); } retBuffer = multiBuffer[currentBufferIndex]; *retSize = multiBufferSize[currentBufferIndex]; } currentBufferIndex = (currentBufferIndex + 1) % NB_BUFFERS; nbtest++; } while (retBuffer == NULL && nbtest < NB_BUFFERS); return retBuffer; }