public void InvokeAction8 <A1, A2, A3, A4, A5, A6, A7, A8> (object o, A1 a1, A2 a2, A3 a3, A4 a4, A5 a5, A6 a6, A7 a7, A8 a8) { Stats.Increment(StatsCounter.InvokeMemberBinderInvoked); bool invokeOnly = false; if (mOverloadState != OverloadState.HasOverload) { invokeOnly = UpdateInvoker(o); ICallerA <A1, A2, A3, A4, A5, A6, A7, A8> caller = mInvoker as ICallerA <A1, A2, A3, A4, A5, A6, A7, A8>; if (caller != null) { Stats.Increment(StatsCounter.InvokeMemberBinderInvoked_Fast); caller.Call(a1, a2, a3, a4, a5, a6, a7, a8); // Fast path return; } } var args = mArgs; args[0] = (object)a1; args[1] = (object)a2; args[2] = (object)a3; args[3] = (object)a4; args[4] = (object)a5; args[5] = (object)a6; args[6] = (object)a7; args[7] = (object)a8; ResolveAndInvoke(o, invokeOnly); }
public void InvokeAction4 <A1, A2, A3, A4> (object o, A1 a1, A2 a2, A3 a3, A4 a4) { Stats.Increment(StatsCounter.InvokeMemberBinderInvoked); bool invokeOnly = false; if (mOverloadState != OverloadState.HasOverload) { invokeOnly = UpdateInvoker(o); ICallerA <A1, A2, A3, A4> caller = mInvoker as ICallerA <A1, A2, A3, A4>; if (caller != null) { Stats.Increment(StatsCounter.InvokeMemberBinderInvoked_Fast); caller.Call(a1, a2, a3, a4); // Fast path return; } } var args = mArgs; args[0] = (object)a1; args[1] = (object)a2; args[2] = (object)a3; args[3] = (object)a4; ResolveAndInvoke(o, invokeOnly); }
public void InvokeAction0(object o) { Stats.Increment(StatsCounter.InvokeMemberBinderInvoked); bool invokeOnly = UpdateInvoker(o); ICallerA caller = mInvoker as ICallerA; if (caller != null) { Stats.Increment(StatsCounter.InvokeMemberBinderInvoked_Fast); caller.Call(); // Fast path return; } ResolveAndInvoke(o, invokeOnly); }
public void InvokeAction1 <A1> (object o, A1 a1) { Stats.Increment(StatsCounter.InvokeMemberBinderInvoked); bool invokeOnly = false; if (mOverloadState != OverloadState.HasOverload) { invokeOnly = UpdateInvoker(o); ICallerA <A1> caller = mInvoker as ICallerA <A1>; if (caller != null) { Stats.Increment(StatsCounter.InvokeMemberBinderInvoked_Fast); caller.Call(a1); // Fast path return; } } var args = mArgs; args[0] = (object)a1; ResolveAndInvoke(o, invokeOnly); }