public bool FindNext(out int length, out int distance) { if (bestLen < 8) { bool result = hc4.FindNext(out length, out distance); if (!result) { bestLen = 9; hc8Initialized = true; return(hc8.FindFirst(probeOffset, out length, out distance)); } bestLen = length; return(result); } else { if (!hc8Initialized) { hc8Initialized = true; return(hc8.FindFirst(probeOffset, out length, out distance)); } else { return(hc8.FindNext(out length, out distance)); } } }
public bool FindNext(out int length, out int distance) { if (probeOffset != -1) { bool result = hc4.FindFirst(probeOffset, out length, out distance); probeOffset = -1; return(result); } else { return(hc4.FindNext(out length, out distance)); } }