Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ FilterPasses()

static bool System.Linq.Expressions.Interpreter.TryCatchFinallyHandler.FilterPasses ( InterpretedFrame frame,
ref object exception,
ExceptionFilter filter )
inlinestaticprivate

Definition at line 67 of file TryCatchFinallyHandler.cs.

68 {
69 Interpreter interpreter = frame.Interpreter;
70 Instruction[] instructions = interpreter.Instructions.Instructions;
71 int stackIndex = frame.StackIndex;
72 int instructionIndex = frame.InstructionIndex;
73 try
74 {
75 int num = (frame.InstructionIndex = interpreter._labels[filter.LabelIndex].Index);
76 frame.Push(exception);
77 while (num >= filter.StartIndex && num < filter.EndIndex)
78 {
79 num = (frame.InstructionIndex = num + instructions[num].Run(frame));
80 }
81 object obj = frame.Pop();
82 if ((bool)frame.Pop())
83 {
84 exception = obj;
85 return true;
86 }
87 }
88 catch
89 {
90 }
91 frame.StackIndex = stackIndex;
92 frame.InstructionIndex = instructionIndex;
93 return false;
94 }

References System.Linq.Expressions.Interpreter.Interpreter._labels, System.Linq.Expressions.Interpreter.ExceptionFilter.EndIndex, System.exception, System.Linq.Expressions.Interpreter.RuntimeLabel.Index, System.Linq.Expressions.Interpreter.InterpretedFrame.InstructionIndex, System.Linq.Expressions.Interpreter.InstructionArray.Instructions, System.Linq.Expressions.Interpreter.Interpreter.Instructions, System.Linq.Expressions.Interpreter.InterpretedFrame.Interpreter, System.Linq.Expressions.Interpreter.ExceptionFilter.LabelIndex, System.obj, System.Linq.Expressions.Interpreter.InterpretedFrame.Pop(), System.Linq.Expressions.Interpreter.InterpretedFrame.Push(), System.Linq.Expressions.Interpreter.Instruction.Run(), System.Linq.Expressions.Interpreter.InterpretedFrame.StackIndex, and System.Linq.Expressions.Interpreter.ExceptionFilter.StartIndex.

Referenced by System.Linq.Expressions.Interpreter.TryCatchFinallyHandler.HasHandler().