text: public void FreeBefore(int pos){int toFree = count - (nextPos - pos);Debug.Assert(toFree >= 0);Debug.Assert(toFree <= count);int index = nextWrite - count;if (index < 0){index += positions.Length;}for (int i = 0; i < toFree; i++){if (index == positions.Length){index = 0;}positions[index].Reset();index++;}count -= toFree;}