p
data.length-1
p+need-1
(p+1-1)==p
data.length
protected internal virtual void Sync(int want) { int need = (p + want - 1) - n + 1; // how many more elements we need? if (need > 0) { Fill(need); } }