private void InvokeNonMatch(ProcessingContext context, QueryBranch branch) { context.PushFrame(); context.Push(false, this.resultCount); try { context.EvalCodeBlock(branch.Branch); } catch (XPathNavigatorException exception) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(exception.Process(branch.Branch)); } catch (NavigatorInvalidBodyAccessException exception2) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(exception2.Process(branch.Branch)); } }
private void InvokeSingleMatch(ProcessingContext context) { int counterMarker = context.Processor.CounterMarker; QueryBranchResult result = this.resultTable[0]; this.InitResults(context); context.Values[context.TopArg[result.ValIndex]].Boolean = true; try { context.EvalCodeBlock(result.Branch.Branch.Next); } catch (XPathNavigatorException exception) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(exception.Process(result.Branch.Branch.Next)); } catch (NavigatorInvalidBodyAccessException exception2) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(exception2.Process(result.Branch.Branch.Next)); } context.Processor.CounterMarker = counterMarker; }