Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UpdateDelegates.cs
Go to the documentation of this file.
2
3namespace System.Dynamic;
4
5internal static class UpdateDelegates
6{
7 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
8 internal static TRet UpdateAndExecute1<T0, TRet>(CallSite site, T0 arg0)
9 {
11 Func<CallSite, T0, TRet> target = callSite.Target;
12 site = callSite.GetMatchmaker();
13 Func<CallSite, T0, TRet>[] rules;
14 Func<CallSite, T0, TRet> func;
15 if ((rules = CallSiteOps.GetRules(callSite)) != null)
16 {
17 for (int i = 0; i < rules.Length; i++)
18 {
19 func = rules[i];
20 if ((object)func != target)
21 {
22 callSite.Target = func;
23 TRet result = func(site, arg0);
24 if (CallSiteOps.GetMatch(site))
25 {
26 CallSiteOps.UpdateRules(callSite, i);
27 callSite.ReleaseMatchmaker(site);
28 return result;
29 }
31 }
32 }
33 }
34 RuleCache<Func<CallSite, T0, TRet>> ruleCache = CallSiteOps.GetRuleCache(callSite);
35 rules = ruleCache.GetRules();
36 for (int j = 0; j < rules.Length; j++)
37 {
38 func = (callSite.Target = rules[j]);
39 try
40 {
41 TRet result = func(site, arg0);
42 if (CallSiteOps.GetMatch(site))
43 {
44 callSite.ReleaseMatchmaker(site);
45 return result;
46 }
47 }
48 finally
49 {
50 if (CallSiteOps.GetMatch(site))
51 {
52 CallSiteOps.AddRule(callSite, func);
53 CallSiteOps.MoveRule(ruleCache, func, j);
54 }
55 }
57 }
58 func = null;
59 object[] args = new object[1] { arg0 };
60 while (true)
61 {
62 callSite.Target = target;
63 func = (callSite.Target = callSite.Binder.BindCore(callSite, args));
64 try
65 {
66 TRet result = func(site, arg0);
67 if (CallSiteOps.GetMatch(site))
68 {
69 callSite.ReleaseMatchmaker(site);
70 return result;
71 }
72 }
73 finally
74 {
75 if (CallSiteOps.GetMatch(site))
76 {
77 CallSiteOps.AddRule(callSite, func);
78 }
79 }
81 }
82 }
83
84 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
85 internal static TRet NoMatch1<T0, TRet>(CallSite site, T0 arg0)
86 {
87 site._match = false;
88 return default(TRet);
89 }
90
91 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
92 internal static TRet UpdateAndExecute2<T0, T1, TRet>(CallSite site, T0 arg0, T1 arg1)
93 {
95 Func<CallSite, T0, T1, TRet> target = callSite.Target;
96 site = callSite.GetMatchmaker();
97 Func<CallSite, T0, T1, TRet>[] rules;
98 Func<CallSite, T0, T1, TRet> func;
99 if ((rules = CallSiteOps.GetRules(callSite)) != null)
100 {
101 for (int i = 0; i < rules.Length; i++)
102 {
103 func = rules[i];
104 if ((object)func != target)
105 {
106 callSite.Target = func;
107 TRet result = func(site, arg0, arg1);
108 if (CallSiteOps.GetMatch(site))
109 {
110 CallSiteOps.UpdateRules(callSite, i);
111 callSite.ReleaseMatchmaker(site);
112 return result;
113 }
115 }
116 }
117 }
118 RuleCache<Func<CallSite, T0, T1, TRet>> ruleCache = CallSiteOps.GetRuleCache(callSite);
119 rules = ruleCache.GetRules();
120 for (int j = 0; j < rules.Length; j++)
121 {
122 func = (callSite.Target = rules[j]);
123 try
124 {
125 TRet result = func(site, arg0, arg1);
126 if (CallSiteOps.GetMatch(site))
127 {
128 callSite.ReleaseMatchmaker(site);
129 return result;
130 }
131 }
132 finally
133 {
134 if (CallSiteOps.GetMatch(site))
135 {
136 CallSiteOps.AddRule(callSite, func);
137 CallSiteOps.MoveRule(ruleCache, func, j);
138 }
139 }
141 }
142 func = null;
143 object[] args = new object[2] { arg0, arg1 };
144 while (true)
145 {
146 callSite.Target = target;
147 func = (callSite.Target = callSite.Binder.BindCore(callSite, args));
148 try
149 {
150 TRet result = func(site, arg0, arg1);
151 if (CallSiteOps.GetMatch(site))
152 {
153 callSite.ReleaseMatchmaker(site);
154 return result;
155 }
156 }
157 finally
158 {
159 if (CallSiteOps.GetMatch(site))
160 {
161 CallSiteOps.AddRule(callSite, func);
162 }
163 }
165 }
166 }
167
168 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
169 internal static TRet NoMatch2<T0, T1, TRet>(CallSite site, T0 arg0, T1 arg1)
170 {
171 site._match = false;
172 return default(TRet);
173 }
174
175 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
176 internal static TRet UpdateAndExecute3<T0, T1, T2, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2)
177 {
179 Func<CallSite, T0, T1, T2, TRet> target = callSite.Target;
180 site = callSite.GetMatchmaker();
181 Func<CallSite, T0, T1, T2, TRet>[] rules;
182 Func<CallSite, T0, T1, T2, TRet> func;
183 if ((rules = CallSiteOps.GetRules(callSite)) != null)
184 {
185 for (int i = 0; i < rules.Length; i++)
186 {
187 func = rules[i];
188 if ((object)func != target)
189 {
190 callSite.Target = func;
191 TRet result = func(site, arg0, arg1, arg2);
192 if (CallSiteOps.GetMatch(site))
193 {
194 CallSiteOps.UpdateRules(callSite, i);
195 callSite.ReleaseMatchmaker(site);
196 return result;
197 }
199 }
200 }
201 }
202 RuleCache<Func<CallSite, T0, T1, T2, TRet>> ruleCache = CallSiteOps.GetRuleCache(callSite);
203 rules = ruleCache.GetRules();
204 for (int j = 0; j < rules.Length; j++)
205 {
206 func = (callSite.Target = rules[j]);
207 try
208 {
209 TRet result = func(site, arg0, arg1, arg2);
210 if (CallSiteOps.GetMatch(site))
211 {
212 callSite.ReleaseMatchmaker(site);
213 return result;
214 }
215 }
216 finally
217 {
218 if (CallSiteOps.GetMatch(site))
219 {
220 CallSiteOps.AddRule(callSite, func);
221 CallSiteOps.MoveRule(ruleCache, func, j);
222 }
223 }
225 }
226 func = null;
227 object[] args = new object[3] { arg0, arg1, arg2 };
228 while (true)
229 {
230 callSite.Target = target;
231 func = (callSite.Target = callSite.Binder.BindCore(callSite, args));
232 try
233 {
234 TRet result = func(site, arg0, arg1, arg2);
235 if (CallSiteOps.GetMatch(site))
236 {
237 callSite.ReleaseMatchmaker(site);
238 return result;
239 }
240 }
241 finally
242 {
243 if (CallSiteOps.GetMatch(site))
244 {
245 CallSiteOps.AddRule(callSite, func);
246 }
247 }
249 }
250 }
251
252 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
253 internal static TRet NoMatch3<T0, T1, T2, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2)
254 {
255 site._match = false;
256 return default(TRet);
257 }
258
259 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
260 internal static TRet UpdateAndExecute4<T0, T1, T2, T3, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3)
261 {
263 Func<CallSite, T0, T1, T2, T3, TRet> target = callSite.Target;
264 site = callSite.GetMatchmaker();
265 Func<CallSite, T0, T1, T2, T3, TRet>[] rules;
266 Func<CallSite, T0, T1, T2, T3, TRet> func;
267 if ((rules = CallSiteOps.GetRules(callSite)) != null)
268 {
269 for (int i = 0; i < rules.Length; i++)
270 {
271 func = rules[i];
272 if ((object)func != target)
273 {
274 callSite.Target = func;
275 TRet result = func(site, arg0, arg1, arg2, arg3);
276 if (CallSiteOps.GetMatch(site))
277 {
278 CallSiteOps.UpdateRules(callSite, i);
279 callSite.ReleaseMatchmaker(site);
280 return result;
281 }
283 }
284 }
285 }
286 RuleCache<Func<CallSite, T0, T1, T2, T3, TRet>> ruleCache = CallSiteOps.GetRuleCache(callSite);
287 rules = ruleCache.GetRules();
288 for (int j = 0; j < rules.Length; j++)
289 {
290 func = (callSite.Target = rules[j]);
291 try
292 {
293 TRet result = func(site, arg0, arg1, arg2, arg3);
294 if (CallSiteOps.GetMatch(site))
295 {
296 callSite.ReleaseMatchmaker(site);
297 return result;
298 }
299 }
300 finally
301 {
302 if (CallSiteOps.GetMatch(site))
303 {
304 CallSiteOps.AddRule(callSite, func);
305 CallSiteOps.MoveRule(ruleCache, func, j);
306 }
307 }
309 }
310 func = null;
311 object[] args = new object[4] { arg0, arg1, arg2, arg3 };
312 while (true)
313 {
314 callSite.Target = target;
315 func = (callSite.Target = callSite.Binder.BindCore(callSite, args));
316 try
317 {
318 TRet result = func(site, arg0, arg1, arg2, arg3);
319 if (CallSiteOps.GetMatch(site))
320 {
321 callSite.ReleaseMatchmaker(site);
322 return result;
323 }
324 }
325 finally
326 {
327 if (CallSiteOps.GetMatch(site))
328 {
329 CallSiteOps.AddRule(callSite, func);
330 }
331 }
333 }
334 }
335
336 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
337 internal static TRet NoMatch4<T0, T1, T2, T3, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3)
338 {
339 site._match = false;
340 return default(TRet);
341 }
342
343 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
344 internal static TRet UpdateAndExecute5<T0, T1, T2, T3, T4, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
345 {
347 Func<CallSite, T0, T1, T2, T3, T4, TRet> target = callSite.Target;
348 site = callSite.GetMatchmaker();
349 Func<CallSite, T0, T1, T2, T3, T4, TRet>[] rules;
350 Func<CallSite, T0, T1, T2, T3, T4, TRet> func;
351 if ((rules = CallSiteOps.GetRules(callSite)) != null)
352 {
353 for (int i = 0; i < rules.Length; i++)
354 {
355 func = rules[i];
356 if ((object)func != target)
357 {
358 callSite.Target = func;
359 TRet result = func(site, arg0, arg1, arg2, arg3, arg4);
360 if (CallSiteOps.GetMatch(site))
361 {
362 CallSiteOps.UpdateRules(callSite, i);
363 callSite.ReleaseMatchmaker(site);
364 return result;
365 }
367 }
368 }
369 }
370 RuleCache<Func<CallSite, T0, T1, T2, T3, T4, TRet>> ruleCache = CallSiteOps.GetRuleCache(callSite);
371 rules = ruleCache.GetRules();
372 for (int j = 0; j < rules.Length; j++)
373 {
374 func = (callSite.Target = rules[j]);
375 try
376 {
377 TRet result = func(site, arg0, arg1, arg2, arg3, arg4);
378 if (CallSiteOps.GetMatch(site))
379 {
380 callSite.ReleaseMatchmaker(site);
381 return result;
382 }
383 }
384 finally
385 {
386 if (CallSiteOps.GetMatch(site))
387 {
388 CallSiteOps.AddRule(callSite, func);
389 CallSiteOps.MoveRule(ruleCache, func, j);
390 }
391 }
393 }
394 func = null;
395 object[] args = new object[5] { arg0, arg1, arg2, arg3, arg4 };
396 while (true)
397 {
398 callSite.Target = target;
399 func = (callSite.Target = callSite.Binder.BindCore(callSite, args));
400 try
401 {
402 TRet result = func(site, arg0, arg1, arg2, arg3, arg4);
403 if (CallSiteOps.GetMatch(site))
404 {
405 callSite.ReleaseMatchmaker(site);
406 return result;
407 }
408 }
409 finally
410 {
411 if (CallSiteOps.GetMatch(site))
412 {
413 CallSiteOps.AddRule(callSite, func);
414 }
415 }
417 }
418 }
419
420 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
421 internal static TRet NoMatch5<T0, T1, T2, T3, T4, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
422 {
423 site._match = false;
424 return default(TRet);
425 }
426
427 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
428 internal static TRet UpdateAndExecute6<T0, T1, T2, T3, T4, T5, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
429 {
431 Func<CallSite, T0, T1, T2, T3, T4, T5, TRet> target = callSite.Target;
432 site = callSite.GetMatchmaker();
433 Func<CallSite, T0, T1, T2, T3, T4, T5, TRet>[] rules;
434 Func<CallSite, T0, T1, T2, T3, T4, T5, TRet> func;
435 if ((rules = CallSiteOps.GetRules(callSite)) != null)
436 {
437 for (int i = 0; i < rules.Length; i++)
438 {
439 func = rules[i];
440 if ((object)func != target)
441 {
442 callSite.Target = func;
443 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5);
444 if (CallSiteOps.GetMatch(site))
445 {
446 CallSiteOps.UpdateRules(callSite, i);
447 callSite.ReleaseMatchmaker(site);
448 return result;
449 }
451 }
452 }
453 }
455 rules = ruleCache.GetRules();
456 for (int j = 0; j < rules.Length; j++)
457 {
458 func = (callSite.Target = rules[j]);
459 try
460 {
461 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5);
462 if (CallSiteOps.GetMatch(site))
463 {
464 callSite.ReleaseMatchmaker(site);
465 return result;
466 }
467 }
468 finally
469 {
470 if (CallSiteOps.GetMatch(site))
471 {
472 CallSiteOps.AddRule(callSite, func);
473 CallSiteOps.MoveRule(ruleCache, func, j);
474 }
475 }
477 }
478 func = null;
479 object[] args = new object[6] { arg0, arg1, arg2, arg3, arg4, arg5 };
480 while (true)
481 {
482 callSite.Target = target;
483 func = (callSite.Target = callSite.Binder.BindCore(callSite, args));
484 try
485 {
486 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5);
487 if (CallSiteOps.GetMatch(site))
488 {
489 callSite.ReleaseMatchmaker(site);
490 return result;
491 }
492 }
493 finally
494 {
495 if (CallSiteOps.GetMatch(site))
496 {
497 CallSiteOps.AddRule(callSite, func);
498 }
499 }
501 }
502 }
503
504 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
505 internal static TRet NoMatch6<T0, T1, T2, T3, T4, T5, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
506 {
507 site._match = false;
508 return default(TRet);
509 }
510
511 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
512 internal static TRet UpdateAndExecute7<T0, T1, T2, T3, T4, T5, T6, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
513 {
515 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, TRet> target = callSite.Target;
516 site = callSite.GetMatchmaker();
517 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, TRet>[] rules;
518 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, TRet> func;
519 if ((rules = CallSiteOps.GetRules(callSite)) != null)
520 {
521 for (int i = 0; i < rules.Length; i++)
522 {
523 func = rules[i];
524 if ((object)func != target)
525 {
526 callSite.Target = func;
527 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
528 if (CallSiteOps.GetMatch(site))
529 {
530 CallSiteOps.UpdateRules(callSite, i);
531 callSite.ReleaseMatchmaker(site);
532 return result;
533 }
535 }
536 }
537 }
539 rules = ruleCache.GetRules();
540 for (int j = 0; j < rules.Length; j++)
541 {
542 func = (callSite.Target = rules[j]);
543 try
544 {
545 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
546 if (CallSiteOps.GetMatch(site))
547 {
548 callSite.ReleaseMatchmaker(site);
549 return result;
550 }
551 }
552 finally
553 {
554 if (CallSiteOps.GetMatch(site))
555 {
556 CallSiteOps.AddRule(callSite, func);
557 CallSiteOps.MoveRule(ruleCache, func, j);
558 }
559 }
561 }
562 func = null;
563 object[] args = new object[7] { arg0, arg1, arg2, arg3, arg4, arg5, arg6 };
564 while (true)
565 {
566 callSite.Target = target;
567 func = (callSite.Target = callSite.Binder.BindCore(callSite, args));
568 try
569 {
570 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
571 if (CallSiteOps.GetMatch(site))
572 {
573 callSite.ReleaseMatchmaker(site);
574 return result;
575 }
576 }
577 finally
578 {
579 if (CallSiteOps.GetMatch(site))
580 {
581 CallSiteOps.AddRule(callSite, func);
582 }
583 }
585 }
586 }
587
588 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
589 internal static TRet NoMatch7<T0, T1, T2, T3, T4, T5, T6, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
590 {
591 site._match = false;
592 return default(TRet);
593 }
594
595 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
596 internal static TRet UpdateAndExecute8<T0, T1, T2, T3, T4, T5, T6, T7, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
597 {
599 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, TRet> target = callSite.Target;
600 site = callSite.GetMatchmaker();
601 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, TRet>[] rules;
602 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, TRet> func;
603 if ((rules = CallSiteOps.GetRules(callSite)) != null)
604 {
605 for (int i = 0; i < rules.Length; i++)
606 {
607 func = rules[i];
608 if ((object)func != target)
609 {
610 callSite.Target = func;
611 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
612 if (CallSiteOps.GetMatch(site))
613 {
614 CallSiteOps.UpdateRules(callSite, i);
615 callSite.ReleaseMatchmaker(site);
616 return result;
617 }
619 }
620 }
621 }
623 rules = ruleCache.GetRules();
624 for (int j = 0; j < rules.Length; j++)
625 {
626 func = (callSite.Target = rules[j]);
627 try
628 {
629 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
630 if (CallSiteOps.GetMatch(site))
631 {
632 callSite.ReleaseMatchmaker(site);
633 return result;
634 }
635 }
636 finally
637 {
638 if (CallSiteOps.GetMatch(site))
639 {
640 CallSiteOps.AddRule(callSite, func);
641 CallSiteOps.MoveRule(ruleCache, func, j);
642 }
643 }
645 }
646 func = null;
647 object[] args = new object[8] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 };
648 while (true)
649 {
650 callSite.Target = target;
651 func = (callSite.Target = callSite.Binder.BindCore(callSite, args));
652 try
653 {
654 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
655 if (CallSiteOps.GetMatch(site))
656 {
657 callSite.ReleaseMatchmaker(site);
658 return result;
659 }
660 }
661 finally
662 {
663 if (CallSiteOps.GetMatch(site))
664 {
665 CallSiteOps.AddRule(callSite, func);
666 }
667 }
669 }
670 }
671
672 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
673 internal static TRet NoMatch8<T0, T1, T2, T3, T4, T5, T6, T7, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
674 {
675 site._match = false;
676 return default(TRet);
677 }
678
679 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
680 internal static TRet UpdateAndExecute9<T0, T1, T2, T3, T4, T5, T6, T7, T8, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
681 {
683 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8, TRet> target = callSite.Target;
684 site = callSite.GetMatchmaker();
685 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8, TRet>[] rules;
686 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8, TRet> func;
687 if ((rules = CallSiteOps.GetRules(callSite)) != null)
688 {
689 for (int i = 0; i < rules.Length; i++)
690 {
691 func = rules[i];
692 if ((object)func != target)
693 {
694 callSite.Target = func;
695 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
696 if (CallSiteOps.GetMatch(site))
697 {
698 CallSiteOps.UpdateRules(callSite, i);
699 callSite.ReleaseMatchmaker(site);
700 return result;
701 }
703 }
704 }
705 }
707 rules = ruleCache.GetRules();
708 for (int j = 0; j < rules.Length; j++)
709 {
710 func = (callSite.Target = rules[j]);
711 try
712 {
713 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
714 if (CallSiteOps.GetMatch(site))
715 {
716 callSite.ReleaseMatchmaker(site);
717 return result;
718 }
719 }
720 finally
721 {
722 if (CallSiteOps.GetMatch(site))
723 {
724 CallSiteOps.AddRule(callSite, func);
725 CallSiteOps.MoveRule(ruleCache, func, j);
726 }
727 }
729 }
730 func = null;
731 object[] args = new object[9] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 };
732 while (true)
733 {
734 callSite.Target = target;
735 func = (callSite.Target = callSite.Binder.BindCore(callSite, args));
736 try
737 {
738 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
739 if (CallSiteOps.GetMatch(site))
740 {
741 callSite.ReleaseMatchmaker(site);
742 return result;
743 }
744 }
745 finally
746 {
747 if (CallSiteOps.GetMatch(site))
748 {
749 CallSiteOps.AddRule(callSite, func);
750 }
751 }
753 }
754 }
755
756 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
757 internal static TRet NoMatch9<T0, T1, T2, T3, T4, T5, T6, T7, T8, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
758 {
759 site._match = false;
760 return default(TRet);
761 }
762
763 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
764 internal static TRet UpdateAndExecute10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
765 {
767 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, TRet> target = callSite.Target;
768 site = callSite.GetMatchmaker();
769 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, TRet>[] rules;
770 Func<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, TRet> func;
771 if ((rules = CallSiteOps.GetRules(callSite)) != null)
772 {
773 for (int i = 0; i < rules.Length; i++)
774 {
775 func = rules[i];
776 if ((object)func != target)
777 {
778 callSite.Target = func;
779 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
780 if (CallSiteOps.GetMatch(site))
781 {
782 CallSiteOps.UpdateRules(callSite, i);
783 callSite.ReleaseMatchmaker(site);
784 return result;
785 }
787 }
788 }
789 }
791 rules = ruleCache.GetRules();
792 for (int j = 0; j < rules.Length; j++)
793 {
794 func = (callSite.Target = rules[j]);
795 try
796 {
797 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
798 if (CallSiteOps.GetMatch(site))
799 {
800 callSite.ReleaseMatchmaker(site);
801 return result;
802 }
803 }
804 finally
805 {
806 if (CallSiteOps.GetMatch(site))
807 {
808 CallSiteOps.AddRule(callSite, func);
809 CallSiteOps.MoveRule(ruleCache, func, j);
810 }
811 }
813 }
814 func = null;
815 object[] args = new object[10] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 };
816 while (true)
817 {
818 callSite.Target = target;
819 func = (callSite.Target = callSite.Binder.BindCore(callSite, args));
820 try
821 {
822 TRet result = func(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
823 if (CallSiteOps.GetMatch(site))
824 {
825 callSite.ReleaseMatchmaker(site);
826 return result;
827 }
828 }
829 finally
830 {
831 if (CallSiteOps.GetMatch(site))
832 {
833 CallSiteOps.AddRule(callSite, func);
834 }
835 }
837 }
838 }
839
840 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
841 internal static TRet NoMatch10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, TRet>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
842 {
843 site._match = false;
844 return default(TRet);
845 }
846
847 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
848 internal static void UpdateAndExecuteVoid1<T0>(CallSite site, T0 arg0)
849 {
851 Action<CallSite, T0> target = callSite.Target;
852 site = callSite.GetMatchmaker();
853 Action<CallSite, T0>[] rules;
854 Action<CallSite, T0> action;
855 if ((rules = CallSiteOps.GetRules(callSite)) != null)
856 {
857 for (int i = 0; i < rules.Length; i++)
858 {
859 action = rules[i];
860 if ((object)action != target)
861 {
862 callSite.Target = action;
863 action(site, arg0);
864 if (CallSiteOps.GetMatch(site))
865 {
866 CallSiteOps.UpdateRules(callSite, i);
867 callSite.ReleaseMatchmaker(site);
868 return;
869 }
871 }
872 }
873 }
874 RuleCache<Action<CallSite, T0>> ruleCache = CallSiteOps.GetRuleCache(callSite);
875 rules = ruleCache.GetRules();
876 for (int j = 0; j < rules.Length; j++)
877 {
878 action = (callSite.Target = rules[j]);
879 try
880 {
881 action(site, arg0);
882 if (CallSiteOps.GetMatch(site))
883 {
884 callSite.ReleaseMatchmaker(site);
885 return;
886 }
887 }
888 finally
889 {
890 if (CallSiteOps.GetMatch(site))
891 {
892 CallSiteOps.AddRule(callSite, action);
893 CallSiteOps.MoveRule(ruleCache, action, j);
894 }
895 }
897 }
898 action = null;
899 object[] args = new object[1] { arg0 };
900 while (true)
901 {
902 callSite.Target = target;
903 action = (callSite.Target = callSite.Binder.BindCore(callSite, args));
904 try
905 {
906 action(site, arg0);
907 if (CallSiteOps.GetMatch(site))
908 {
909 callSite.ReleaseMatchmaker(site);
910 break;
911 }
912 }
913 finally
914 {
915 if (CallSiteOps.GetMatch(site))
916 {
917 CallSiteOps.AddRule(callSite, action);
918 }
919 }
921 }
922 }
923
924 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
925 internal static void NoMatchVoid1<T0>(CallSite site, T0 arg0)
926 {
927 site._match = false;
928 }
929
930 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
931 internal static void UpdateAndExecuteVoid2<T0, T1>(CallSite site, T0 arg0, T1 arg1)
932 {
934 Action<CallSite, T0, T1> target = callSite.Target;
935 site = callSite.GetMatchmaker();
936 Action<CallSite, T0, T1>[] rules;
937 Action<CallSite, T0, T1> action;
938 if ((rules = CallSiteOps.GetRules(callSite)) != null)
939 {
940 for (int i = 0; i < rules.Length; i++)
941 {
942 action = rules[i];
943 if ((object)action != target)
944 {
945 callSite.Target = action;
946 action(site, arg0, arg1);
947 if (CallSiteOps.GetMatch(site))
948 {
949 CallSiteOps.UpdateRules(callSite, i);
950 callSite.ReleaseMatchmaker(site);
951 return;
952 }
954 }
955 }
956 }
957 RuleCache<Action<CallSite, T0, T1>> ruleCache = CallSiteOps.GetRuleCache(callSite);
958 rules = ruleCache.GetRules();
959 for (int j = 0; j < rules.Length; j++)
960 {
961 action = (callSite.Target = rules[j]);
962 try
963 {
964 action(site, arg0, arg1);
965 if (CallSiteOps.GetMatch(site))
966 {
967 callSite.ReleaseMatchmaker(site);
968 return;
969 }
970 }
971 finally
972 {
973 if (CallSiteOps.GetMatch(site))
974 {
975 CallSiteOps.AddRule(callSite, action);
976 CallSiteOps.MoveRule(ruleCache, action, j);
977 }
978 }
980 }
981 action = null;
982 object[] args = new object[2] { arg0, arg1 };
983 while (true)
984 {
985 callSite.Target = target;
986 action = (callSite.Target = callSite.Binder.BindCore(callSite, args));
987 try
988 {
989 action(site, arg0, arg1);
990 if (CallSiteOps.GetMatch(site))
991 {
992 callSite.ReleaseMatchmaker(site);
993 break;
994 }
995 }
996 finally
997 {
998 if (CallSiteOps.GetMatch(site))
999 {
1000 CallSiteOps.AddRule(callSite, action);
1001 }
1002 }
1003 CallSiteOps.ClearMatch(site);
1004 }
1005 }
1006
1007 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1008 internal static void NoMatchVoid2<T0, T1>(CallSite site, T0 arg0, T1 arg1)
1009 {
1010 site._match = false;
1011 }
1012
1013 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1014 internal static void UpdateAndExecuteVoid3<T0, T1, T2>(CallSite site, T0 arg0, T1 arg1, T2 arg2)
1015 {
1017 Action<CallSite, T0, T1, T2> target = callSite.Target;
1018 site = callSite.GetMatchmaker();
1019 Action<CallSite, T0, T1, T2>[] rules;
1020 Action<CallSite, T0, T1, T2> action;
1021 if ((rules = CallSiteOps.GetRules(callSite)) != null)
1022 {
1023 for (int i = 0; i < rules.Length; i++)
1024 {
1025 action = rules[i];
1026 if ((object)action != target)
1027 {
1028 callSite.Target = action;
1029 action(site, arg0, arg1, arg2);
1030 if (CallSiteOps.GetMatch(site))
1031 {
1032 CallSiteOps.UpdateRules(callSite, i);
1033 callSite.ReleaseMatchmaker(site);
1034 return;
1035 }
1036 CallSiteOps.ClearMatch(site);
1037 }
1038 }
1039 }
1040 RuleCache<Action<CallSite, T0, T1, T2>> ruleCache = CallSiteOps.GetRuleCache(callSite);
1041 rules = ruleCache.GetRules();
1042 for (int j = 0; j < rules.Length; j++)
1043 {
1044 action = (callSite.Target = rules[j]);
1045 try
1046 {
1047 action(site, arg0, arg1, arg2);
1048 if (CallSiteOps.GetMatch(site))
1049 {
1050 callSite.ReleaseMatchmaker(site);
1051 return;
1052 }
1053 }
1054 finally
1055 {
1056 if (CallSiteOps.GetMatch(site))
1057 {
1058 CallSiteOps.AddRule(callSite, action);
1059 CallSiteOps.MoveRule(ruleCache, action, j);
1060 }
1061 }
1062 CallSiteOps.ClearMatch(site);
1063 }
1064 action = null;
1065 object[] args = new object[3] { arg0, arg1, arg2 };
1066 while (true)
1067 {
1068 callSite.Target = target;
1069 action = (callSite.Target = callSite.Binder.BindCore(callSite, args));
1070 try
1071 {
1072 action(site, arg0, arg1, arg2);
1073 if (CallSiteOps.GetMatch(site))
1074 {
1075 callSite.ReleaseMatchmaker(site);
1076 break;
1077 }
1078 }
1079 finally
1080 {
1081 if (CallSiteOps.GetMatch(site))
1082 {
1083 CallSiteOps.AddRule(callSite, action);
1084 }
1085 }
1086 CallSiteOps.ClearMatch(site);
1087 }
1088 }
1089
1090 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1091 internal static void NoMatchVoid3<T0, T1, T2>(CallSite site, T0 arg0, T1 arg1, T2 arg2)
1092 {
1093 site._match = false;
1094 }
1095
1096 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1097 internal static void UpdateAndExecuteVoid4<T0, T1, T2, T3>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3)
1098 {
1100 Action<CallSite, T0, T1, T2, T3> target = callSite.Target;
1101 site = callSite.GetMatchmaker();
1102 Action<CallSite, T0, T1, T2, T3>[] rules;
1103 Action<CallSite, T0, T1, T2, T3> action;
1104 if ((rules = CallSiteOps.GetRules(callSite)) != null)
1105 {
1106 for (int i = 0; i < rules.Length; i++)
1107 {
1108 action = rules[i];
1109 if ((object)action != target)
1110 {
1111 callSite.Target = action;
1112 action(site, arg0, arg1, arg2, arg3);
1113 if (CallSiteOps.GetMatch(site))
1114 {
1115 CallSiteOps.UpdateRules(callSite, i);
1116 callSite.ReleaseMatchmaker(site);
1117 return;
1118 }
1119 CallSiteOps.ClearMatch(site);
1120 }
1121 }
1122 }
1123 RuleCache<Action<CallSite, T0, T1, T2, T3>> ruleCache = CallSiteOps.GetRuleCache(callSite);
1124 rules = ruleCache.GetRules();
1125 for (int j = 0; j < rules.Length; j++)
1126 {
1127 action = (callSite.Target = rules[j]);
1128 try
1129 {
1130 action(site, arg0, arg1, arg2, arg3);
1131 if (CallSiteOps.GetMatch(site))
1132 {
1133 callSite.ReleaseMatchmaker(site);
1134 return;
1135 }
1136 }
1137 finally
1138 {
1139 if (CallSiteOps.GetMatch(site))
1140 {
1141 CallSiteOps.AddRule(callSite, action);
1142 CallSiteOps.MoveRule(ruleCache, action, j);
1143 }
1144 }
1145 CallSiteOps.ClearMatch(site);
1146 }
1147 action = null;
1148 object[] args = new object[4] { arg0, arg1, arg2, arg3 };
1149 while (true)
1150 {
1151 callSite.Target = target;
1152 action = (callSite.Target = callSite.Binder.BindCore(callSite, args));
1153 try
1154 {
1155 action(site, arg0, arg1, arg2, arg3);
1156 if (CallSiteOps.GetMatch(site))
1157 {
1158 callSite.ReleaseMatchmaker(site);
1159 break;
1160 }
1161 }
1162 finally
1163 {
1164 if (CallSiteOps.GetMatch(site))
1165 {
1166 CallSiteOps.AddRule(callSite, action);
1167 }
1168 }
1169 CallSiteOps.ClearMatch(site);
1170 }
1171 }
1172
1173 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1174 internal static void NoMatchVoid4<T0, T1, T2, T3>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3)
1175 {
1176 site._match = false;
1177 }
1178
1179 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1180 internal static void UpdateAndExecuteVoid5<T0, T1, T2, T3, T4>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
1181 {
1183 Action<CallSite, T0, T1, T2, T3, T4> target = callSite.Target;
1184 site = callSite.GetMatchmaker();
1185 Action<CallSite, T0, T1, T2, T3, T4>[] rules;
1186 Action<CallSite, T0, T1, T2, T3, T4> action;
1187 if ((rules = CallSiteOps.GetRules(callSite)) != null)
1188 {
1189 for (int i = 0; i < rules.Length; i++)
1190 {
1191 action = rules[i];
1192 if ((object)action != target)
1193 {
1194 callSite.Target = action;
1195 action(site, arg0, arg1, arg2, arg3, arg4);
1196 if (CallSiteOps.GetMatch(site))
1197 {
1198 CallSiteOps.UpdateRules(callSite, i);
1199 callSite.ReleaseMatchmaker(site);
1200 return;
1201 }
1202 CallSiteOps.ClearMatch(site);
1203 }
1204 }
1205 }
1206 RuleCache<Action<CallSite, T0, T1, T2, T3, T4>> ruleCache = CallSiteOps.GetRuleCache(callSite);
1207 rules = ruleCache.GetRules();
1208 for (int j = 0; j < rules.Length; j++)
1209 {
1210 action = (callSite.Target = rules[j]);
1211 try
1212 {
1213 action(site, arg0, arg1, arg2, arg3, arg4);
1214 if (CallSiteOps.GetMatch(site))
1215 {
1216 callSite.ReleaseMatchmaker(site);
1217 return;
1218 }
1219 }
1220 finally
1221 {
1222 if (CallSiteOps.GetMatch(site))
1223 {
1224 CallSiteOps.AddRule(callSite, action);
1225 CallSiteOps.MoveRule(ruleCache, action, j);
1226 }
1227 }
1228 CallSiteOps.ClearMatch(site);
1229 }
1230 action = null;
1231 object[] args = new object[5] { arg0, arg1, arg2, arg3, arg4 };
1232 while (true)
1233 {
1234 callSite.Target = target;
1235 action = (callSite.Target = callSite.Binder.BindCore(callSite, args));
1236 try
1237 {
1238 action(site, arg0, arg1, arg2, arg3, arg4);
1239 if (CallSiteOps.GetMatch(site))
1240 {
1241 callSite.ReleaseMatchmaker(site);
1242 break;
1243 }
1244 }
1245 finally
1246 {
1247 if (CallSiteOps.GetMatch(site))
1248 {
1249 CallSiteOps.AddRule(callSite, action);
1250 }
1251 }
1252 CallSiteOps.ClearMatch(site);
1253 }
1254 }
1255
1256 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1257 internal static void NoMatchVoid5<T0, T1, T2, T3, T4>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
1258 {
1259 site._match = false;
1260 }
1261
1262 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1263 internal static void UpdateAndExecuteVoid6<T0, T1, T2, T3, T4, T5>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
1264 {
1266 Action<CallSite, T0, T1, T2, T3, T4, T5> target = callSite.Target;
1267 site = callSite.GetMatchmaker();
1268 Action<CallSite, T0, T1, T2, T3, T4, T5>[] rules;
1269 Action<CallSite, T0, T1, T2, T3, T4, T5> action;
1270 if ((rules = CallSiteOps.GetRules(callSite)) != null)
1271 {
1272 for (int i = 0; i < rules.Length; i++)
1273 {
1274 action = rules[i];
1275 if ((object)action != target)
1276 {
1277 callSite.Target = action;
1278 action(site, arg0, arg1, arg2, arg3, arg4, arg5);
1279 if (CallSiteOps.GetMatch(site))
1280 {
1281 CallSiteOps.UpdateRules(callSite, i);
1282 callSite.ReleaseMatchmaker(site);
1283 return;
1284 }
1285 CallSiteOps.ClearMatch(site);
1286 }
1287 }
1288 }
1289 RuleCache<Action<CallSite, T0, T1, T2, T3, T4, T5>> ruleCache = CallSiteOps.GetRuleCache(callSite);
1290 rules = ruleCache.GetRules();
1291 for (int j = 0; j < rules.Length; j++)
1292 {
1293 action = (callSite.Target = rules[j]);
1294 try
1295 {
1296 action(site, arg0, arg1, arg2, arg3, arg4, arg5);
1297 if (CallSiteOps.GetMatch(site))
1298 {
1299 callSite.ReleaseMatchmaker(site);
1300 return;
1301 }
1302 }
1303 finally
1304 {
1305 if (CallSiteOps.GetMatch(site))
1306 {
1307 CallSiteOps.AddRule(callSite, action);
1308 CallSiteOps.MoveRule(ruleCache, action, j);
1309 }
1310 }
1311 CallSiteOps.ClearMatch(site);
1312 }
1313 action = null;
1314 object[] args = new object[6] { arg0, arg1, arg2, arg3, arg4, arg5 };
1315 while (true)
1316 {
1317 callSite.Target = target;
1318 action = (callSite.Target = callSite.Binder.BindCore(callSite, args));
1319 try
1320 {
1321 action(site, arg0, arg1, arg2, arg3, arg4, arg5);
1322 if (CallSiteOps.GetMatch(site))
1323 {
1324 callSite.ReleaseMatchmaker(site);
1325 break;
1326 }
1327 }
1328 finally
1329 {
1330 if (CallSiteOps.GetMatch(site))
1331 {
1332 CallSiteOps.AddRule(callSite, action);
1333 }
1334 }
1335 CallSiteOps.ClearMatch(site);
1336 }
1337 }
1338
1339 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1340 internal static void NoMatchVoid6<T0, T1, T2, T3, T4, T5>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
1341 {
1342 site._match = false;
1343 }
1344
1345 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1346 internal static void UpdateAndExecuteVoid7<T0, T1, T2, T3, T4, T5, T6>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
1347 {
1349 Action<CallSite, T0, T1, T2, T3, T4, T5, T6> target = callSite.Target;
1350 site = callSite.GetMatchmaker();
1351 Action<CallSite, T0, T1, T2, T3, T4, T5, T6>[] rules;
1352 Action<CallSite, T0, T1, T2, T3, T4, T5, T6> action;
1353 if ((rules = CallSiteOps.GetRules(callSite)) != null)
1354 {
1355 for (int i = 0; i < rules.Length; i++)
1356 {
1357 action = rules[i];
1358 if ((object)action != target)
1359 {
1360 callSite.Target = action;
1361 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
1362 if (CallSiteOps.GetMatch(site))
1363 {
1364 CallSiteOps.UpdateRules(callSite, i);
1365 callSite.ReleaseMatchmaker(site);
1366 return;
1367 }
1368 CallSiteOps.ClearMatch(site);
1369 }
1370 }
1371 }
1372 RuleCache<Action<CallSite, T0, T1, T2, T3, T4, T5, T6>> ruleCache = CallSiteOps.GetRuleCache(callSite);
1373 rules = ruleCache.GetRules();
1374 for (int j = 0; j < rules.Length; j++)
1375 {
1376 action = (callSite.Target = rules[j]);
1377 try
1378 {
1379 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
1380 if (CallSiteOps.GetMatch(site))
1381 {
1382 callSite.ReleaseMatchmaker(site);
1383 return;
1384 }
1385 }
1386 finally
1387 {
1388 if (CallSiteOps.GetMatch(site))
1389 {
1390 CallSiteOps.AddRule(callSite, action);
1391 CallSiteOps.MoveRule(ruleCache, action, j);
1392 }
1393 }
1394 CallSiteOps.ClearMatch(site);
1395 }
1396 action = null;
1397 object[] args = new object[7] { arg0, arg1, arg2, arg3, arg4, arg5, arg6 };
1398 while (true)
1399 {
1400 callSite.Target = target;
1401 action = (callSite.Target = callSite.Binder.BindCore(callSite, args));
1402 try
1403 {
1404 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6);
1405 if (CallSiteOps.GetMatch(site))
1406 {
1407 callSite.ReleaseMatchmaker(site);
1408 break;
1409 }
1410 }
1411 finally
1412 {
1413 if (CallSiteOps.GetMatch(site))
1414 {
1415 CallSiteOps.AddRule(callSite, action);
1416 }
1417 }
1418 CallSiteOps.ClearMatch(site);
1419 }
1420 }
1421
1422 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1423 internal static void NoMatchVoid7<T0, T1, T2, T3, T4, T5, T6>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
1424 {
1425 site._match = false;
1426 }
1427
1428 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1429 internal static void UpdateAndExecuteVoid8<T0, T1, T2, T3, T4, T5, T6, T7>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
1430 {
1432 Action<CallSite, T0, T1, T2, T3, T4, T5, T6, T7> target = callSite.Target;
1433 site = callSite.GetMatchmaker();
1434 Action<CallSite, T0, T1, T2, T3, T4, T5, T6, T7>[] rules;
1435 Action<CallSite, T0, T1, T2, T3, T4, T5, T6, T7> action;
1436 if ((rules = CallSiteOps.GetRules(callSite)) != null)
1437 {
1438 for (int i = 0; i < rules.Length; i++)
1439 {
1440 action = rules[i];
1441 if ((object)action != target)
1442 {
1443 callSite.Target = action;
1444 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
1445 if (CallSiteOps.GetMatch(site))
1446 {
1447 CallSiteOps.UpdateRules(callSite, i);
1448 callSite.ReleaseMatchmaker(site);
1449 return;
1450 }
1451 CallSiteOps.ClearMatch(site);
1452 }
1453 }
1454 }
1456 rules = ruleCache.GetRules();
1457 for (int j = 0; j < rules.Length; j++)
1458 {
1459 action = (callSite.Target = rules[j]);
1460 try
1461 {
1462 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
1463 if (CallSiteOps.GetMatch(site))
1464 {
1465 callSite.ReleaseMatchmaker(site);
1466 return;
1467 }
1468 }
1469 finally
1470 {
1471 if (CallSiteOps.GetMatch(site))
1472 {
1473 CallSiteOps.AddRule(callSite, action);
1474 CallSiteOps.MoveRule(ruleCache, action, j);
1475 }
1476 }
1477 CallSiteOps.ClearMatch(site);
1478 }
1479 action = null;
1480 object[] args = new object[8] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7 };
1481 while (true)
1482 {
1483 callSite.Target = target;
1484 action = (callSite.Target = callSite.Binder.BindCore(callSite, args));
1485 try
1486 {
1487 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7);
1488 if (CallSiteOps.GetMatch(site))
1489 {
1490 callSite.ReleaseMatchmaker(site);
1491 break;
1492 }
1493 }
1494 finally
1495 {
1496 if (CallSiteOps.GetMatch(site))
1497 {
1498 CallSiteOps.AddRule(callSite, action);
1499 }
1500 }
1501 CallSiteOps.ClearMatch(site);
1502 }
1503 }
1504
1505 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1506 internal static void NoMatchVoid8<T0, T1, T2, T3, T4, T5, T6, T7>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
1507 {
1508 site._match = false;
1509 }
1510
1511 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1512 internal static void UpdateAndExecuteVoid9<T0, T1, T2, T3, T4, T5, T6, T7, T8>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
1513 {
1515 Action<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8> target = callSite.Target;
1516 site = callSite.GetMatchmaker();
1517 Action<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8>[] rules;
1518 Action<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8> action;
1519 if ((rules = CallSiteOps.GetRules(callSite)) != null)
1520 {
1521 for (int i = 0; i < rules.Length; i++)
1522 {
1523 action = rules[i];
1524 if ((object)action != target)
1525 {
1526 callSite.Target = action;
1527 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
1528 if (CallSiteOps.GetMatch(site))
1529 {
1530 CallSiteOps.UpdateRules(callSite, i);
1531 callSite.ReleaseMatchmaker(site);
1532 return;
1533 }
1534 CallSiteOps.ClearMatch(site);
1535 }
1536 }
1537 }
1539 rules = ruleCache.GetRules();
1540 for (int j = 0; j < rules.Length; j++)
1541 {
1542 action = (callSite.Target = rules[j]);
1543 try
1544 {
1545 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
1546 if (CallSiteOps.GetMatch(site))
1547 {
1548 callSite.ReleaseMatchmaker(site);
1549 return;
1550 }
1551 }
1552 finally
1553 {
1554 if (CallSiteOps.GetMatch(site))
1555 {
1556 CallSiteOps.AddRule(callSite, action);
1557 CallSiteOps.MoveRule(ruleCache, action, j);
1558 }
1559 }
1560 CallSiteOps.ClearMatch(site);
1561 }
1562 action = null;
1563 object[] args = new object[9] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8 };
1564 while (true)
1565 {
1566 callSite.Target = target;
1567 action = (callSite.Target = callSite.Binder.BindCore(callSite, args));
1568 try
1569 {
1570 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8);
1571 if (CallSiteOps.GetMatch(site))
1572 {
1573 callSite.ReleaseMatchmaker(site);
1574 break;
1575 }
1576 }
1577 finally
1578 {
1579 if (CallSiteOps.GetMatch(site))
1580 {
1581 CallSiteOps.AddRule(callSite, action);
1582 }
1583 }
1584 CallSiteOps.ClearMatch(site);
1585 }
1586 }
1587
1588 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1589 internal static void NoMatchVoid9<T0, T1, T2, T3, T4, T5, T6, T7, T8>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
1590 {
1591 site._match = false;
1592 }
1593
1594 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1595 internal static void UpdateAndExecuteVoid10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
1596 {
1598 Action<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> target = callSite.Target;
1599 site = callSite.GetMatchmaker();
1600 Action<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>[] rules;
1601 Action<CallSite, T0, T1, T2, T3, T4, T5, T6, T7, T8, T9> action;
1602 if ((rules = CallSiteOps.GetRules(callSite)) != null)
1603 {
1604 for (int i = 0; i < rules.Length; i++)
1605 {
1606 action = rules[i];
1607 if ((object)action != target)
1608 {
1609 callSite.Target = action;
1610 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
1611 if (CallSiteOps.GetMatch(site))
1612 {
1613 CallSiteOps.UpdateRules(callSite, i);
1614 callSite.ReleaseMatchmaker(site);
1615 return;
1616 }
1617 CallSiteOps.ClearMatch(site);
1618 }
1619 }
1620 }
1622 rules = ruleCache.GetRules();
1623 for (int j = 0; j < rules.Length; j++)
1624 {
1625 action = (callSite.Target = rules[j]);
1626 try
1627 {
1628 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
1629 if (CallSiteOps.GetMatch(site))
1630 {
1631 callSite.ReleaseMatchmaker(site);
1632 return;
1633 }
1634 }
1635 finally
1636 {
1637 if (CallSiteOps.GetMatch(site))
1638 {
1639 CallSiteOps.AddRule(callSite, action);
1640 CallSiteOps.MoveRule(ruleCache, action, j);
1641 }
1642 }
1643 CallSiteOps.ClearMatch(site);
1644 }
1645 action = null;
1646 object[] args = new object[10] { arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9 };
1647 while (true)
1648 {
1649 callSite.Target = target;
1650 action = (callSite.Target = callSite.Binder.BindCore(callSite, args));
1651 try
1652 {
1653 action(site, arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9);
1654 if (CallSiteOps.GetMatch(site))
1655 {
1656 callSite.ReleaseMatchmaker(site);
1657 break;
1658 }
1659 }
1660 finally
1661 {
1662 if (CallSiteOps.GetMatch(site))
1663 {
1664 CallSiteOps.AddRule(callSite, action);
1665 }
1666 }
1667 CallSiteOps.ClearMatch(site);
1668 }
1669 }
1670
1671 [Obsolete("pregenerated CallSite<T>.Update delegate", true)]
1672 internal static void NoMatchVoid10<T0, T1, T2, T3, T4, T5, T6, T7, T8, T9>(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
1673 {
1674 site._match = false;
1675 }
1676}
static TRet NoMatch6< T0, T1, T2, T3, T4, T5, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
static TRet UpdateAndExecute7< T0, T1, T2, T3, T4, T5, T6, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
static void NoMatchVoid5< T0, T1, T2, T3, T4 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
static TRet UpdateAndExecute1< T0, TRet >(CallSite site, T0 arg0)
static void UpdateAndExecuteVoid9< T0, T1, T2, T3, T4, T5, T6, T7, T8 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
static TRet NoMatch10< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
static void NoMatchVoid9< T0, T1, T2, T3, T4, T5, T6, T7, T8 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
static TRet UpdateAndExecute4< T0, T1, T2, T3, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3)
static TRet UpdateAndExecute6< T0, T1, T2, T3, T4, T5, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
static void NoMatchVoid3< T0, T1, T2 >(CallSite site, T0 arg0, T1 arg1, T2 arg2)
static void NoMatchVoid1< T0 >(CallSite site, T0 arg0)
static TRet NoMatch4< T0, T1, T2, T3, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3)
static void UpdateAndExecuteVoid10< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
static void UpdateAndExecuteVoid7< T0, T1, T2, T3, T4, T5, T6 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
static TRet UpdateAndExecute9< T0, T1, T2, T3, T4, T5, T6, T7, T8, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
static TRet NoMatch8< T0, T1, T2, T3, T4, T5, T6, T7, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
static TRet NoMatch5< T0, T1, T2, T3, T4, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
static void UpdateAndExecuteVoid1< T0 >(CallSite site, T0 arg0)
static void UpdateAndExecuteVoid3< T0, T1, T2 >(CallSite site, T0 arg0, T1 arg1, T2 arg2)
static TRet NoMatch9< T0, T1, T2, T3, T4, T5, T6, T7, T8, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8)
static TRet NoMatch2< T0, T1, TRet >(CallSite site, T0 arg0, T1 arg1)
static void UpdateAndExecuteVoid2< T0, T1 >(CallSite site, T0 arg0, T1 arg1)
static TRet UpdateAndExecute2< T0, T1, TRet >(CallSite site, T0 arg0, T1 arg1)
static TRet UpdateAndExecute8< T0, T1, T2, T3, T4, T5, T6, T7, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
static void UpdateAndExecuteVoid6< T0, T1, T2, T3, T4, T5 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
static void NoMatchVoid4< T0, T1, T2, T3 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3)
static TRet UpdateAndExecute3< T0, T1, T2, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2)
static void NoMatchVoid2< T0, T1 >(CallSite site, T0 arg0, T1 arg1)
static TRet UpdateAndExecute10< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
static TRet NoMatch3< T0, T1, T2, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2)
static void NoMatchVoid10< T0, T1, T2, T3, T4, T5, T6, T7, T8, T9 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7, T8 arg8, T9 arg9)
static TRet NoMatch1< T0, TRet >(CallSite site, T0 arg0)
static void UpdateAndExecuteVoid4< T0, T1, T2, T3 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3)
static TRet UpdateAndExecute5< T0, T1, T2, T3, T4, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
static void UpdateAndExecuteVoid8< T0, T1, T2, T3, T4, T5, T6, T7 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
static void NoMatchVoid8< T0, T1, T2, T3, T4, T5, T6, T7 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6, T7 arg7)
static void NoMatchVoid6< T0, T1, T2, T3, T4, T5 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5)
static void NoMatchVoid7< T0, T1, T2, T3, T4, T5, T6 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
static void UpdateAndExecuteVoid5< T0, T1, T2, T3, T4 >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4)
static TRet NoMatch7< T0, T1, T2, T3, T4, T5, T6, TRet >(CallSite site, T0 arg0, T1 arg1, T2 arg2, T3 arg3, T4 arg4, T5 arg5, T6 arg6)
static bool GetMatch(CallSite site)
static void ClearMatch(CallSite site)
void ReleaseMatchmaker(CallSite matchMaker)
Definition CallSite.cs:106