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
ObjectReader.cs
Go to the documentation of this file.
1using System;
2using System.IO;
6
8{
9 // Token: 0x0200041E RID: 1054
10 internal sealed class ObjectReader
11 {
12 // Token: 0x1700044A RID: 1098
13 // (get) Token: 0x060020AC RID: 8364 RVA: 0x000486DC File Offset: 0x000468DC
15 {
16 get
17 {
18 /*
19An exception occurred when decompiling this method (060020AC)
20
21ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Runtime.Serialization.Formatters.Binary.SerStack System.Runtime.Serialization.Formatters.Binary.ObjectReader::get_ValueFixupStack()
22
23 ---> System.Exception: Basic block has to end with unconditional control flow.
24{
25 IL_0000:
26 brtrue(IL_0000, ldfld:SerStack[exp:bool](ObjectReader::valueFixupStack, ldloc:ObjectReader(this)))
27}
28
29 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
30 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
31 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
32 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
33 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
34 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
35 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
36 --- End of inner exception stack trace ---
37 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
38 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
39*/;
40 }
41 }
42
43 // Token: 0x1700044B RID: 1099
44 // (get) Token: 0x060020AD RID: 8365 RVA: 0x000486F0 File Offset: 0x000468F0
45 // (set) Token: 0x060020AE RID: 8366 RVA: 0x00048704 File Offset: 0x00046904
46 internal object TopObject
47 {
48 get
49 {
50 return this.m_topObject;
51 }
52 set
53 {
54 ObjectManager objectManager = this.m_objectManager;
56 if (objectManager != null)
57 {
59 }
60 }
61 }
62
63 // Token: 0x060020AF RID: 8367 RVA: 0x0004872C File Offset: 0x0004692C
65 {
66 /*
67An exception occurred when decompiling this method (060020AF)
68
69ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Void System.Runtime.Serialization.Formatters.Binary.ObjectReader::.ctor(System.IO.Stream,System.Runtime.Serialization.ISurrogateSelector,System.Runtime.Serialization.StreamingContext,System.Runtime.Serialization.Formatters.Binary.InternalFE,System.Runtime.Serialization.SerializationBinder)
70
71 ---> System.Exception: Basic block has to end with unconditional control flow.
72{
73 IL_0034:
74 stloc:string(var_0_3E, call:string(Environment::GetResourceString, ldstr:string("Stream cannot be null.")))
75}
76
77 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
78 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
79 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1878
80 at ICSharpCode.Decompiler.ILAst.ILAstOptimizer.FlattenBasicBlocks(ILNode node) in D:\a\dnSpy\dnSpy\Extensions\ILSpy.Decompiler\ICSharpCode.Decompiler\ICSharpCode.Decompiler\ILAst\ILAstOptimizer.cs:line 1846
81 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
82 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
83 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
84 --- End of inner exception stack trace ---
85 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
86 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
87*/;
88 }
89
90 // Token: 0x060020B0 RID: 8368 RVA: 0x00048778 File Offset: 0x00046978
92 {
93 int num = 1;
94 if (num != 0)
95 {
96 }
97 if (num != 0)
98 {
99 }
100 Type type;
101 if (type != null)
102 {
103 }
104 bool flag;
105 bool value;
106 if (flag)
107 {
108 if (!flag)
109 {
110 throw new InvalidCastException();
111 }
112 if (!flag)
113 {
114 throw new InvalidCastException();
115 }
116 value = flag.m_value;
117 if (value)
118 {
119 }
120 }
121 if (value)
122 {
123 }
124 if (handler != null)
125 {
126 IntPtr invoke_impl = handler.invoke_impl;
127 IntPtr method_code = handler.method_code;
128 IntPtr method = handler.method;
129 }
130 throw new ArrayTypeMismatchException();
131 }
132
133 // Token: 0x060020B1 RID: 8369 RVA: 0x000487E4 File Offset: 0x000469E4
134 private bool HasSurrogate(Type t)
135 {
136 /*
137An exception occurred when decompiling this method (060020B1)
138
139ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean System.Runtime.Serialization.Formatters.Binary.ObjectReader::HasSurrogate(System.Type)
140
141 ---> System.Exception: Basic block has to end with unconditional control flow.
142{
143 IL_001B:
144 stloc:int64(var_2_21, ldfld:int64(int64::m_value, ldc.i4:int32[exp:int64&](0)))
145}
146
147 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
148 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
149 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
150 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
151 --- End of inner exception stack trace ---
152 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
153 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
154*/;
155 }
156
157 // Token: 0x060020B2 RID: 8370 RVA: 0x00048814 File Offset: 0x00046A14
158 private void CheckSerializable(Type t)
159 {
160 bool flag = this.HasSurrogate(t);
161 }
162
163 // Token: 0x060020B3 RID: 8371 RVA: 0x00048848 File Offset: 0x00046A48
165 {
168 StreamingContext context = this.m_context;
170 if (this.m_formatterConverter == null)
171 {
172 }
173 }
174
175 // Token: 0x060020B4 RID: 8372 RVA: 0x00048880 File Offset: 0x00046A80
176 internal object CrossAppDomainArray(int index)
177 {
178 /*
179An exception occurred when decompiling this method (060020B4)
180
181ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Object System.Runtime.Serialization.Formatters.Binary.ObjectReader::CrossAppDomainArray(System.Int32)
182
183 ---> System.Exception: Basic block has to end with unconditional control flow.
184{
185 Block_0:
186 stloc:object[](var_0_06, ldfld:object[](ObjectReader::crossAppDomainArray, ldloc:ObjectReader(this)))
187}
188
189 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
190 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
191 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
192 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
193 --- End of inner exception stack trace ---
194 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
195 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
196*/;
197 }
198
199 // Token: 0x060020B5 RID: 8373 RVA: 0x00048894 File Offset: 0x00046A94
212
213 // Token: 0x060020B6 RID: 8374 RVA: 0x000488DC File Offset: 0x00046ADC
214 internal ReadObjectInfo CreateReadObjectInfo(Type objectType, string[] memberNames, Type[] memberTypes)
215 {
217 StreamingContext context = this.m_context;
219 ObjectManager objectManager = this.m_objectManager;
221 IFormatterConverter formatterConverter = this.m_formatterConverter;
222 bool flag = this.bSimpleAssembly;
224 return readObjectInfo;
225 }
226
227 // Token: 0x060020B7 RID: 8375 RVA: 0x00048924 File Offset: 0x00046B24
228 internal void Parse(ParseRecord pr)
229 {
231 }
232
233 // Token: 0x060020B8 RID: 8376 RVA: 0x00048974 File Offset: 0x00046B74
235 {
236 string prname = onStack.PRname;
237 if ((prname == null || prname != null) && (" " == null || " " != null))
238 {
240 return;
241 }
242 throw new ArrayTypeMismatchException();
243 }
244
245 // Token: 0x060020B9 RID: 8377 RVA: 0x000489E8 File Offset: 0x00046BE8
247 {
248 this.stack.Push(pr);
249 }
250
251 // Token: 0x060020BA RID: 8378 RVA: 0x00048A04 File Offset: 0x00046C04
253 {
254 object[] objects = this.stack.objects;
255 }
256
257 // Token: 0x060020BB RID: 8379 RVA: 0x00048A20 File Offset: 0x00046C20
272
273 // Token: 0x060020BC RID: 8380 RVA: 0x00048B90 File Offset: 0x00046D90
275 {
276 SerStack serStack = this.stack;
277 int top = serStack.top;
278 object[] objects = serStack.objects;
279 if (serStack == null)
280 {
281 }
282 SerStack serStack2 = this.stack;
283 int top2 = serStack2.top;
284 object[] objects2 = serStack2.objects;
285 object[] objects3 = this.stack.objects;
286 throw new InvalidCastException();
287 }
288
289 // Token: 0x060020BD RID: 8381 RVA: 0x00048C2C File Offset: 0x00046E2C
290 private void ParseArray(ParseRecord pr)
291 {
293 string prvalue = pr.PRvalue;
294 int stringLength = prvalue._stringLength;
296 }
297
298 // Token: 0x060020BE RID: 8382 RVA: 0x00048E84 File Offset: 0x00047084
300 {
301 int prrank = pr.PRrank;
303 int[] prlengthA = pr.PRlengthA;
304 int prrank2 = pr.PRrank;
305 int[] prindexMap = pr.PRindexMap;
307 }
308
309 // Token: 0x060020BF RID: 8383 RVA: 0x00048EC0 File Offset: 0x000470C0
311 {
312 object[] objects = this.stack.objects;
313 throw new InvalidCastException();
314 }
315
316 // Token: 0x060020C0 RID: 8384 RVA: 0x00048FA8 File Offset: 0x000471A8
322
323 // Token: 0x060020C1 RID: 8385 RVA: 0x00048FC4 File Offset: 0x000471C4
324 private void ParseMember(ParseRecord pr)
325 {
326 object[] objects = this.stack.objects;
327 throw new InvalidCastException();
328 }
329
330 // Token: 0x060020C2 RID: 8386 RVA: 0x000490F4 File Offset: 0x000472F4
337
338 // Token: 0x060020C3 RID: 8387 RVA: 0x00049130 File Offset: 0x00047330
340 {
341 if (pr.PRisRegistered)
342 {
343 return;
344 }
345 long probjectId = pr.PRobjectId;
346 string prvalue = pr.PRvalue;
347 this.RegisterObject(prvalue, pr, parentPr, true);
348 }
349
350 // Token: 0x060020C4 RID: 8388 RVA: 0x00049160 File Offset: 0x00047360
352 {
353 long num = 0L;
354 this.RegisterObject(obj, pr, objectPr, num != 0L);
355 }
356
357 // Token: 0x060020C5 RID: 8389 RVA: 0x0004917C File Offset: 0x0004737C
359 {
360 if (pr.PRisRegistered)
361 {
362 return;
363 }
364 pr.PRisRegistered = true;
365 if (objectPr != null)
366 {
367 int[] prindexMap = objectPr.PRindexMap;
368 ReadObjectInfo probjectInfo = objectPr.PRobjectInfo;
369 long probjectId = objectPr.PRobjectId;
370 if (probjectInfo != null && !probjectInfo.isSi)
371 {
372 string prname = pr.PRname;
373 MemberInfo memberInfo = probjectInfo.GetMemberInfo(prname);
374 return;
375 }
376 }
378 ObjectManager objectManager = this.m_objectManager;
379 long probjectId2 = pr.PRobjectId;
380 if (obj != null)
381 {
382 }
383 }
384
385 // Token: 0x060020C6 RID: 8390 RVA: 0x000491F0 File Offset: 0x000473F0
386 internal long GetId(long objectId)
387 {
388 bool flag = this.bFullDeserialization;
389 if (!flag)
390 {
392 }
393 if (!flag)
394 {
395 }
396 if (objectId == 0L)
397 {
398 }
399 return objectId;
400 }
401
402 // Token: 0x060020C7 RID: 8391 RVA: 0x00049218 File Offset: 0x00047418
403 internal Type Bind(string assemblyString, string typeString)
404 {
406 if (binder == null || binder != null)
407 {
408 }
409 return this.FastBindToType(assemblyString, typeString);
410 }
411
412 // Token: 0x060020C8 RID: 8392 RVA: 0x0004923C File Offset: 0x0004743C
413 internal Type FastBindToType(string assemblyName, string typeName)
414 {
415 do
416 {
417 if (this.typeCache.GetCachedValue(typeName) != null)
418 {
419 }
420 if (this.bSimpleAssembly)
421 {
422 if (typeName == null)
423 {
424 break;
425 }
426 NameCache nameCache = this.typeCache;
427 }
428 }
429 while (FormatterServices.GetTypeFromAssembly(Assembly.Load(assemblyName), typeName) != null);
430 throw new InvalidCastException();
431 }
432
433 // Token: 0x060020C9 RID: 8393 RVA: 0x0000207A File Offset: 0x0000027A
435 {
436 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
437 }
438
439 // Token: 0x060020CA RID: 8394 RVA: 0x00049288 File Offset: 0x00047488
440 private static void GetSimplyNamedTypeFromAssembly(Assembly assm, string typeName, Type type)
441 {
442 if (!true)
443 {
444 }
445 if (FormatterServices.GetTypeFromAssembly(assm, typeName) == null)
446 {
447 }
448 }
449
450 // Token: 0x060020CB RID: 8395 RVA: 0x000492A8 File Offset: 0x000474A8
451 internal Type GetType(BinaryAssemblyInfo assemblyInfo, string name)
452 {
453 string text = this.previousName;
454 if (text != null)
455 {
456 int stringLength = text._stringLength;
457 int stringLength2 = name._stringLength;
458 bool flag = text.Equals(name);
459 string text2 = this.previousAssemblyString;
460 if (text2 != null)
461 {
462 string assemblyString = assemblyInfo.assemblyString;
463 int stringLength3 = text2._stringLength;
464 int stringLength4 = assemblyString._stringLength;
465 bool flag2 = text2.Equals(assemblyString);
466 Type type = this.previousType;
467 }
468 }
469 string assemblyString2 = assemblyInfo.assemblyString;
470 Type type2 = this.Bind(assemblyString2, name);
471 if (type2 != null)
472 {
473 return type2;
474 }
475 Assembly assembly = assemblyInfo.GetAssembly();
476 if (this.bSimpleAssembly)
477 {
478 }
480 string assemblyString3 = assemblyInfo.assemblyString;
484 return typeFromAssembly;
485 }
486
487 // Token: 0x060020CC RID: 8396 RVA: 0x00049364 File Offset: 0x00047564
489 {
490 if (!true)
491 {
492 }
496 if (typeInformation.hasTypeForwardedFrom)
497 {
498 string assemblyString = typeInformation.assemblyString;
499 Assembly assembly = Assembly.Load(assemblyString);
500 }
501 }
502
503 // Token: 0x0400113B RID: 4411
504 internal Stream m_stream;
505
506 // Token: 0x0400113C RID: 4412
508
509 // Token: 0x0400113D RID: 4413
511
512 // Token: 0x0400113E RID: 4414
514
515 // Token: 0x0400113F RID: 4415
517
518 // Token: 0x04001140 RID: 4416
520
521 // Token: 0x04001141 RID: 4417
522 internal long topId;
523
524 // Token: 0x04001142 RID: 4418
525 internal bool bSimpleAssembly;
526
527 // Token: 0x04001143 RID: 4419
528 internal object handlerObject;
529
530 // Token: 0x04001144 RID: 4420
531 internal object m_topObject;
532
533 // Token: 0x04001145 RID: 4421
534 internal Header[] headers;
535
536 // Token: 0x04001146 RID: 4422
538
539 // Token: 0x04001147 RID: 4423
541
542 // Token: 0x04001148 RID: 4424
544
545 // Token: 0x04001149 RID: 4425
546 internal SerStack stack;
547
548 // Token: 0x0400114A RID: 4426
550
551 // Token: 0x0400114B RID: 4427
552 internal object[] crossAppDomainArray;
553
554 // Token: 0x0400114C RID: 4428
556
557 // Token: 0x0400114D RID: 4429
558 private bool bOldFormatDetected;
559
560 // Token: 0x0400114E RID: 4430
562
563 // Token: 0x0400114F RID: 4431
565
566 // Token: 0x04001150 RID: 4432
568
569 // Token: 0x04001151 RID: 4433
570 private string previousName;
571
572 // Token: 0x04001152 RID: 4434
574
575 // Token: 0x0200041F RID: 1055
576 internal class TypeNAssembly
577 {
578 // Token: 0x060020CD RID: 8397 RVA: 0x000493AC File Offset: 0x000475AC
580 {
581 }
582
583 // Token: 0x04001153 RID: 4435
584 public Type type;
585
586 // Token: 0x04001154 RID: 4436
587 public string assemblyName;
588 }
589
590 // Token: 0x02000420 RID: 1056
591 internal sealed class TopLevelAssemblyTypeResolver
592 {
593 // Token: 0x060020CE RID: 8398 RVA: 0x000493C0 File Offset: 0x000475C0
598
599 // Token: 0x060020CF RID: 8399 RVA: 0x000493DC File Offset: 0x000475DC
600 public Type ResolveType(Assembly assembly, string simpleTypeName, bool ignoreCase)
601 {
602 /*
603An exception occurred when decompiling this method (060020CF)
604
605ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Type System.Runtime.Serialization.Formatters.Binary.ObjectReader/TopLevelAssemblyTypeResolver::ResolveType(System.Reflection.Assembly,System.String,System.Boolean)
606
607 ---> System.Exception: Basic block has to end with unconditional control flow.
608{
609 Block_0:
610 stloc:Assembly(var_1_06, ldfld:Assembly(TopLevelAssemblyTypeResolver::m_topLevelAssembly, ldloc:TopLevelAssemblyTypeResolver(this)))
611}
612
613 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
614 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
615 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
616 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
617 --- End of inner exception stack trace ---
618 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
619 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
620*/;
621 }
622
623 // Token: 0x04001155 RID: 4437
625 }
626 }
627}
class f__AnonymousType0<< Count > j__TPar
static void Copy(Array sourceArray, Array destinationArray, long length)
Definition Array.cs:205
static byte[] FromBase64String(string s)
Definition Convert.cs:2736
IntPtr method_code
Definition Delegate.cs:386
IntPtr invoke_impl
Definition Delegate.cs:371
static Assembly Load(string assemblyString)
Definition Assembly.cs:267
static Type GetTypeFromAssembly(Assembly assem, string name)
Type ResolveType(Assembly assembly, string simpleTypeName, bool ignoreCase)
Type GetType(BinaryAssemblyInfo assemblyInfo, string name)
object Deserialize(HeaderHandler handler, __BinaryParser serParser, bool fCheck)
void RegisterObject(object obj, ParseRecord pr, ParseRecord objectPr)
void ParseString(ParseRecord pr, ParseRecord parentPr)
void ParseError(ParseRecord processing, ParseRecord onStack)
static void CheckTypeForwardedTo(Assembly sourceAssembly, Assembly destAssembly, Type resolvedType)
Type Bind(string assemblyString, string typeString)
ObjectReader(Stream stream, ISurrogateSelector selector, StreamingContext context, InternalFE formatterEnums, SerializationBinder binder)
static Assembly ResolveSimpleAssemblyName(AssemblyName assemblyName)
Type FastBindToType(string assemblyName, string typeName)
ReadObjectInfo CreateReadObjectInfo(Type objectType, string[] memberNames, Type[] memberTypes)
void RegisterObject(object obj, ParseRecord pr, ParseRecord objectPr, bool bIsString)
static void GetSimplyNamedTypeFromAssembly(Assembly assm, string typeName, Type type)
readonly StreamingContextStates m_state