public void freeBefore(int pos) {final int toFree = count - (nextPos - pos);assert toFree >= 0;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;}

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;}
