void CCacheWriter::CStoreBuffer::CheckSpace(size_t add) { if ( m_Ptr + add > m_End ) { size_t old_size = size(); size_t new_size = (old_size+add)*2; char* new_buf = new char[new_size]; memcpy(new_buf, data(), old_size); x_FreeBuffer(); m_Buffer = new_buf; m_Ptr = new_buf + old_size; m_End = new_buf + new_size; } _ASSERT(m_Ptr + add <= m_End); }
~CStoreBuffer(void) { x_FreeBuffer(); }