Slice::Slice(Shard& shard) : m_shard(shard), m_capacity(shard.GetSliceCapacity()), m_refCount(1), m_buffer(shard.AllocateSliceBuffer()), m_unallocatedCount(shard.GetSliceCapacity()), m_commitPendingCount(0), m_expiredCount(0) { Initialize(); // Perform start up initialization of the DocTable and RowTables after // the buffer has been allocated. GetDocTable().Initialize(m_buffer); for (Rank r = 0; r <= c_maxRankValue; ++r) { GetRowTable(r).Initialize(m_buffer, m_shard.GetTermTable()); } }