Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Core / Microsoft / Scripting / Actions / UpdateDelegates.Generated.cs / 1305376 / UpdateDelegates.Generated.cs
/* **************************************************************************** * * Copyright (c) Microsoft Corporation. * * This source code is subject to terms and conditions of the Microsoft Public License. A * copy of the license can be found in the License.html file at the root of this distribution. If * you cannot locate the Microsoft Public License, please send an email to * dlr@microsoft.com. By using this source code in any fashion, you are agreeing to be bound * by the terms of the Microsoft Public License. * * You must not remove this notice, or any other, from this software. * * * ***************************************************************************/ using System.Runtime.CompilerServices; using System.Threading; namespace System.Dynamic { internal static partial class UpdateDelegates { // // WARNING: do not edit these methods here. The real source code lives // in two places: generate_dynsites.py, which generates the methods in // this file, and UpdateDelegates.cs, which dynamically generates // methods like these at run time. If you want to make a change, edit // *both* of those files instead // #region Generated UpdateAndExecute Methods // *** BEGIN GENERATED CODE *** // generated by function: gen_update_targets from: generate_dynsites.py [Obsolete("pregenerated CallSite.Update delegate", true)] internal static TRet UpdateAndExecute0 (CallSite site) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch0 (CallSite site) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute1 (CallSite site, T0 arg0) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch1 (CallSite site, T0 arg0) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute2 (CallSite site, T0 arg0, T1 arg1) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch2 (CallSite site, T0 arg0, T1 arg1) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute3 (CallSite site, T0 arg0, T1 arg1, T2 arg2) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch3 (CallSite site, T0 arg0, T1 arg1, T2 arg2) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute4 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch4 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute5 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch5 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute6 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch6 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute7 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch7 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute8 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch8 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute9 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch9 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static TRet UpdateAndExecute10 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Func [] applicable; Func rule, originalRule = @this.Target; TRet result; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return result; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { result = rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { return result; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static TRet NoMatch10 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9) { site._match = false; return default(TRet); } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid1 (CallSite site, T0 arg0) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid1 (CallSite site, T0 arg0) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid2 (CallSite site, T0 arg0, T1 arg1) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid2 (CallSite site, T0 arg0, T1 arg1) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid3 (CallSite site, T0 arg0, T1 arg1, T2 arg2) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid3 (CallSite site, T0 arg0, T1 arg1, T2 arg2) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid4 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid4 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid5 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid5 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid6 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid6 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid7 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid7 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid8 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid8 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid9 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid9 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8) { site._match = false; return; } [Obsolete("pregenerated CallSite .Update delegate", true)] internal static void UpdateAndExecuteVoid10 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9) { // // Declare the locals here upfront. It actually saves JIT stack space. // var @this = (CallSite >)site; Action [] applicable; Action rule, originalRule = @this.Target; // // Create matchmaker and its site. We'll need them regardless. // site = CallSiteOps.CreateMatchmaker(@this); // // Level 1 cache lookup // if ((applicable = CallSiteOps.GetRules(@this)) != null) { for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // // if we've already tried it skip it... if ((object)rule != (object)originalRule) { @this.Target = rule; rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { CallSiteOps.UpdateRules(@this, i); return; } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } } } // // Level 2 cache lookup // // // Any applicable rules in level 2 cache? // var cache = CallSiteOps.GetRuleCache(@this); applicable = cache.GetRules(); for (int i = 0; i < applicable.Length; i++) { rule = applicable[i]; // // Execute the rule // @this.Target = rule; try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // Rule worked. Add it to level 1 cache // CallSiteOps.AddRule(@this, rule); // and then move it to the front of the L2 cache CallSiteOps.MoveRule(cache, rule, i); } } // Rule didn't match, try the next one CallSiteOps.ClearMatch(site); } // // Miss on Level 0, 1 and 2 caches. Create new rule // rule = null; var args = new object[] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 }; for (; ; ) { @this.Target = originalRule; rule = @this.Target = @this.Binder.BindCore(@this, args); // // Execute the rule on the matchmaker site // try { rule(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); if (CallSiteOps.GetMatch(site)) { return; } } finally { if (CallSiteOps.GetMatch(site)) { // // The rule worked. Add it to level 1 cache. // CallSiteOps.AddRule(@this, rule); } } // Rule we got back didn't work, try another one CallSiteOps.ClearMatch(site); } } [Obsolete("pregenerated CallSite .Update delegate", true)] [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters")] internal static void NoMatchVoid10 (CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9) { site._match = false; return; } // *** END GENERATED CODE *** #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TableColumnCollection.cs
- XmlAtomicValue.cs
- DocumentGridPage.cs
- securitymgrsite.cs
- ComponentDispatcher.cs
- ToolStripContentPanel.cs
- WeakReadOnlyCollection.cs
- AuthorizationContext.cs
- File.cs
- HelpKeywordAttribute.cs
- While.cs
- SolidColorBrush.cs
- COM2ColorConverter.cs
- ipaddressinformationcollection.cs
- IisTraceListener.cs
- SmiRequestExecutor.cs
- StructuredTypeInfo.cs
- SignerInfo.cs
- SelectorAutomationPeer.cs
- PropertyGridCommands.cs
- HwndStylusInputProvider.cs
- SimpleTypeResolver.cs
- Container.cs
- BamlResourceDeserializer.cs
- DocumentViewerBase.cs
- WebReferenceCollection.cs
- CalendarDesigner.cs
- Splitter.cs
- GeneratedView.cs
- Misc.cs
- UnauthorizedAccessException.cs
- HtmlForm.cs
- NodeFunctions.cs
- PropertyItem.cs
- SoapProcessingBehavior.cs
- ActiveDocumentEvent.cs
- EdmConstants.cs
- AsyncMethodInvoker.cs
- DrawingContextWalker.cs
- FileReservationCollection.cs
- ChtmlTextBoxAdapter.cs
- PolyBezierSegment.cs
- TransformGroup.cs
- ProviderMetadataCachedInformation.cs
- XmlDocumentFieldSchema.cs
- CoreSwitches.cs
- AutoGeneratedField.cs
- Typography.cs
- PageSettings.cs
- DecoderFallback.cs
- ToolStripLabel.cs
- PerformanceCounterPermissionAttribute.cs
- PipelineModuleStepContainer.cs
- MemberCollection.cs
- SafeWaitHandle.cs
- Pts.cs
- BamlTreeMap.cs
- BindingMemberInfo.cs
- IntMinMaxAggregationOperator.cs
- ActivityDesignerResources.cs
- Freezable.cs
- DataTemplateSelector.cs
- UnsafeNativeMethods.cs
- HttpMethodAttribute.cs
- CorruptStoreException.cs
- CompilationUnit.cs
- HtmlInputRadioButton.cs
- XmlDictionaryString.cs
- TextElementEnumerator.cs
- ScrollChrome.cs
- TrustManager.cs
- ConfigurationProperty.cs
- TdsValueSetter.cs
- InProcStateClientManager.cs
- DictionaryBase.cs
- ConstructorBuilder.cs
- LayoutManager.cs
- FormViewInsertEventArgs.cs
- ConfigDefinitionUpdates.cs
- DataBinding.cs
- PropertyEmitterBase.cs
- MailHeaderInfo.cs
- DomainUpDown.cs
- AppSettingsSection.cs
- XmlComplianceUtil.cs
- DataGridViewRowStateChangedEventArgs.cs
- Deserializer.cs
- SafeNativeMethods.cs
- SchemaNamespaceManager.cs
- SchemaEntity.cs
- DataReaderContainer.cs
- PageSetupDialog.cs
- RuntimeEnvironment.cs
- ItemsPresenter.cs
- ErrorLog.cs
- EntityStoreSchemaFilterEntry.cs
- SecurityUtils.cs
- BinaryObjectWriter.cs
- SeverityFilter.cs
- DynamicValidatorEventArgs.cs