public override int Advance(int target) { if (Debugging.AssertsEnabled) { Debugging.Assert(target > doc); } while (true) { if (current != null) { int doc; if (target < currentBase) { // target was in the previous slice but there was no matching doc after it doc = current.NextDoc(); } else { doc = current.Advance(target - currentBase); } if (doc == NO_MORE_DOCS) { current = null; } else { return(this.doc = doc + currentBase); } } else if (upto == numSubs - 1) { return(this.doc = NO_MORE_DOCS); } else { upto++; current = subs[upto].DocsEnum; currentBase = subs[upto].Slice.Start; } } }
public override int Advance(int target) { return(m_input.Advance(target)); }