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

◆ Run()

override int System.Linq.Expressions.Interpreter.EnterTryFaultInstruction.Run ( InterpretedFrame frame)
inline

Definition at line 23 of file EnterTryFaultInstruction.cs.

24 {
25 frame.PushContinuation(_labelIndex);
26 int instructionIndex = frame.InstructionIndex;
27 frame.InstructionIndex++;
28 Instruction[] instructions = frame.Interpreter.Instructions.Instructions;
29 bool flag = false;
30 try
31 {
32 int num = frame.InstructionIndex;
33 while (num >= _tryHandler.TryStartIndex && num < _tryHandler.TryEndIndex)
34 {
35 num = (frame.InstructionIndex = num + instructions[num].Run(frame));
36 }
37 flag = true;
38 frame.RemoveContinuation();
39 frame.InstructionIndex += instructions[num].Run(frame);
40 }
41 finally
42 {
43 if (!flag)
44 {
45 int num2 = (frame.InstructionIndex = _tryHandler.FinallyStartIndex);
47 {
48 num2 = (frame.InstructionIndex = num2 + instructions[num2].Run(frame));
49 }
50 }
51 }
52 return frame.InstructionIndex - instructionIndex;
53 }

References System.Linq.Expressions.Interpreter.IndexedBranchInstruction._labelIndex, System.Linq.Expressions.Interpreter.EnterTryFaultInstruction._tryHandler, System.Linq.Expressions.Interpreter.TryFaultHandler.FinallyEndIndex, System.Linq.Expressions.Interpreter.TryFaultHandler.FinallyStartIndex, 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.InterpretedFrame.PushContinuation(), System.Linq.Expressions.Interpreter.InterpretedFrame.RemoveContinuation(), System.Linq.Expressions.Interpreter.Instruction.Run(), System.Linq.Expressions.Interpreter.TryFaultHandler.TryEndIndex, and System.Linq.Expressions.Interpreter.TryFaultHandler.TryStartIndex.