private void ExecuteJumps(ref NextItemPeek peek, out byte peekResult) { peekResult = 0x00; if (peek != NextItemPeek.Jump) { return; } do { var jump = LowLevelDatabaseIODevice.ReadJump(); LowLevelDatabaseIODevice.Seek(jump); peek = LowLevelDatabaseIODevice.Peek(out peekResult); }while (peek == NextItemPeek.Jump); OptimalTokenSource.SetOptimalReadingTime(true); }
public NextItemPeek Peek(out byte peekResult) { if (ArrayIndex == Data.Length) { peekResult = 0x00; return(NextItemPeek.EOF); } if (PeekToReturn == NextItemPeek.Jump) { // we will jmp then back PeekToReturn = NextItemPeek.Index; peekResult = 0xFF; return(NextItemPeek.Jump); } peekResult = (byte)Data[ArrayIndex].Key.Length; return(PeekToReturn); }