terraria-cpp2il-methodrecon v1.4.4.9
Terraria mobile dump, with reconstructed method body. Dump with CallAnalysis: https://infinitynichto.github.io/terraria-cpp2il
Loading...
Searching...
No Matches
MulticastDelegate.cs
Go to the documentation of this file.
1using System;
5
6namespace System
7{
8 // Token: 0x02000185 RID: 389
9 [ComVisible(true)]
11 [StructLayout(0)]
12 public abstract class MulticastDelegate : Delegate
13 {
14 // Token: 0x06000F26 RID: 3878 RVA: 0x00020538 File Offset: 0x0001E738
16 {
18 }
19
20 // Token: 0x06000F27 RID: 3879 RVA: 0x00020550 File Offset: 0x0001E750
21 public sealed override bool Equals(object obj)
22 {
23 bool flag = base.Equals(obj);
24 if (obj != null)
25 {
26 }
27 Delegate[] array = this.delegates;
28 if (array != null)
29 {
30 IntPtr invoke_impl = array.invoke_impl;
31 object target = array.m_target;
32 Delegate[] array2 = this.delegates;
33 return;
34 }
35 }
36
37 // Token: 0x06000F28 RID: 3880 RVA: 0x00020590 File Offset: 0x0001E790
38 public sealed override int GetHashCode()
39 {
40 return base.GetHashCode();
41 }
42
43 // Token: 0x06000F29 RID: 3881 RVA: 0x000205A4 File Offset: 0x0001E7A4
44 protected override MethodInfo GetMethodImpl()
45 {
46 Delegate[] array = this.delegates;
47 if (array != null)
48 {
49 IntPtr invoke_impl = array.invoke_impl;
50 object target = array.m_target;
51 }
53 return methodInfo;
54 }
55
56 // Token: 0x06000F2A RID: 3882 RVA: 0x000205CC File Offset: 0x0001E7CC
57 public sealed override Delegate[] GetInvocationList()
58 {
59 object obj;
60 if (this.delegates != null)
61 {
62 if (obj != null)
63 {
64 if (obj == null)
65 {
66 throw new InvalidCastException();
67 }
68 }
69 }
70 else if (obj != null)
71 {
72 }
74 }
75
76 // Token: 0x06000F2B RID: 3883 RVA: 0x000205F8 File Offset: 0x0001E7F8
77 protected sealed override Delegate CombineImpl(Delegate follow)
78 {
79 if (follow == null)
80 {
82 return array;
83 }
84 Delegate[] array2 = this.delegates;
86 if (array2 != null)
87 {
88 IntPtr invoke_impl = array2.invoke_impl;
89 Delegate[] array = this.delegates;
90 IntPtr invoke_impl2 = array.invoke_impl;
91 array3 = this.delegates;
92 Delegate[] array4 = this.delegates;
93 IntPtr invoke_impl3 = array3.invoke_impl;
94 return array;
95 }
97 if (this != null)
98 {
99 array3.m_target = this;
100 Delegate[] array5 = this.delegates;
103 Delegate[] array6 = this.delegates;
104 if (follow != null)
105 {
106 IntPtr invoke_impl6 = array6.invoke_impl;
107 return follow;
108 }
109 }
110 throw new ArrayTypeMismatchException();
111 }
112
113 // Token: 0x06000F2C RID: 3884 RVA: 0x000206A8 File Offset: 0x0001E8A8
115 {
116 /*
117An exception occurred when decompiling this method (06000F2C)
118
119ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 System.MulticastDelegate::LastIndexOf(System.Delegate[],System.Delegate[])
120
121 ---> System.Exception: Basic block has to end with unconditional control flow.
122{
123 Block_0:
124 stloc:native int(var_0_06, ldfld:native int(Delegate::invoke_impl, ldloc:class System.Delegate[][exp:Delegate](haystack)))
125 stloc:native int(var_1_0D, ldfld:native int(Delegate::invoke_impl, ldloc:class System.Delegate[][exp:Delegate](needle)))
126 stloc:object(var_4_18, ldfld:object(Delegate::m_target, ldloc:class System.Delegate[][exp:Delegate](needle)))
127 stloc:native int(var_6_23, ldfld:native int(Delegate::invoke_impl, ldloc:class System.Delegate[][exp:Delegate](needle)))
128}
129
130 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1852
131 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.Optimize(DecompilerContext context, ILBlock method, AutoPropertyProvider autoPropertyProvider, StateMachineKind& stateMachineKind, MethodDef& inlinedMethod, AsyncMethodDebugInfo& asyncInfo, ILAstOptimizationStep abortBeforeStep) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 355
132 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(IEnumerable`1 parameters, MethodDebugInfoBuilder& builder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 123
133 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 88
134 --- End of inner exception stack trace ---
135 at ICSharpCode.Decompiler.Ast.AstMethodBodyBuilder.CreateMethodBody(MethodDef methodDef, DecompilerContext context, AutoPropertyProvider autoPropertyProvider, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, StringBuilder sb, MethodDebugInfoBuilder& stmtsBuilder) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstMethodBodyBuilder.cs:line 92
136 at ICSharpCode.Decompiler.Ast.AstBuilder.AddMethodBody(EntityDeclaration methodNode, EntityDeclaration& updatedNode, MethodDef method, IEnumerable`1 parameters, Boolean valueParameterIsKeyword, MethodKind methodKind) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\Ast\AstBuilder.cs:line 1683
137*/;
138 }
139
140 // Token: 0x06000F2D RID: 3885 RVA: 0x000206DC File Offset: 0x0001E8DC
141 protected sealed override Delegate RemoveImpl(Delegate value)
142 {
143 if (value != null)
144 {
145 if (this.delegates != null)
146 {
147 Delegate[] array = this.delegates;
149 this.delegates = 0;
150 Delegate[] array2 = this.delegates;
151 Delegate[] array3 = this.delegates;
152 Delegate[] array4 = this.delegates;
153 IntPtr invoke_impl2 = array3.invoke_impl;
154 return array3;
155 }
156 int num;
157 if (num != 0)
158 {
159 }
160 }
161 throw new InvalidCastException();
162 }
163
164 // Token: 0x0400068A RID: 1674
166 }
167}
class f__AnonymousType0<< Count > j__TPar
static void GetDelegateData(Delegate instance, SerializationInfo info, StreamingContext ctx)
IntPtr invoke_impl
Definition Delegate.cs:371
override bool Equals(object obj)
override Delegate CombineImpl(Delegate follow)
override Delegate[] GetInvocationList()
int LastIndexOf(Delegate[] haystack, Delegate[] needle)
override MethodInfo GetMethodImpl()
override void GetObjectData(SerializationInfo info, StreamingContext context)
override Delegate RemoveImpl(Delegate value)