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

◆ Run() [5/5]

override int System.Linq.Expressions.Interpreter.ActionCallInstruction< T0, T1, T2, T3 >.Run ( InterpretedFrame frame)
inline

Definition at line 170 of file ActionCallInstruction.cs.

171 {
172 object obj = frame.Data[frame.StackIndex - 4];
173 if (_isInstance)
174 {
175 Instruction.NullCheck(obj);
176 }
177 if (_isInstance && CallInstruction.TryGetLightLambdaTarget(obj, out var lightLambda))
178 {
179 InterpretLambdaInvoke(lightLambda, new object[3]
180 {
181 frame.Data[frame.StackIndex - 3],
182 frame.Data[frame.StackIndex - 2],
183 frame.Data[frame.StackIndex - 1]
184 });
185 }
186 else
187 {
188 _target((T0)obj, (T1)frame.Data[frame.StackIndex - 3], (T2)frame.Data[frame.StackIndex - 2], (T3)frame.Data[frame.StackIndex - 1]);
189 }
190 frame.StackIndex -= 4;
191 return 1;
192 }
object InterpretLambdaInvoke(LightLambda targetLambda, object[] args)

References System.Linq.Expressions.Interpreter.ActionCallInstruction< T0, T1, T2, T3 >._isInstance, System.Linq.Expressions.Interpreter.ActionCallInstruction< T0, T1, T2, T3 >._target, System.Linq.Expressions.Interpreter.InterpretedFrame.Data, System.Linq.Expressions.Interpreter.CallInstruction.InterpretLambdaInvoke(), System.Linq.Expressions.Interpreter.Instruction.NullCheck(), System.obj, System.Linq.Expressions.Interpreter.InterpretedFrame.StackIndex, and System.Linq.Expressions.Interpreter.CallInstruction.TryGetLightLambdaTarget().