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

◆ Run() [5/5]

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

Definition at line 155 of file FuncCallInstruction.cs.

156 {
157 object obj = frame.Data[frame.StackIndex - 4];
158 if (_isInstance)
159 {
160 Instruction.NullCheck(obj);
161 }
162 LightLambda lightLambda;
163 object obj2 = ((!_isInstance || !CallInstruction.TryGetLightLambdaTarget(obj, out lightLambda)) ? ((object)_target((T0)obj, (T1)frame.Data[frame.StackIndex - 3], (T2)frame.Data[frame.StackIndex - 2], (T3)frame.Data[frame.StackIndex - 1])) : InterpretLambdaInvoke(lightLambda, new object[3]
164 {
165 frame.Data[frame.StackIndex - 3],
166 frame.Data[frame.StackIndex - 2],
167 frame.Data[frame.StackIndex - 1]
168 }));
169 frame.Data[frame.StackIndex - 4] = obj2;
170 frame.StackIndex -= 3;
171 return 1;
172 }
object InterpretLambdaInvoke(LightLambda targetLambda, object[] args)

References System.Linq.Expressions.Interpreter.FuncCallInstruction< T0, T1, T2, T3, TRet >._isInstance, System.Linq.Expressions.Interpreter.FuncCallInstruction< T0, T1, T2, T3, TRet >._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().