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
ObjectWriter.cs
Go to the documentation of this file.
1using System;
6
8{
9 // Token: 0x02000421 RID: 1057
10 internal sealed class ObjectWriter
11 {
12 // Token: 0x060020D0 RID: 8400 RVA: 0x000493F0 File Offset: 0x000475F0
21
22 // Token: 0x060020D1 RID: 8401 RVA: 0x0004942C File Offset: 0x0004762C
24 {
25 if (graph != null)
26 {
27 if (serWriter != null)
28 {
32 object obj = this.previousObj;
34 int currentId = this.m_currentId;
39 return;
40 }
41 }
42 else
43 {
44 string resourceString = Environment.GetResourceString("Object Graph cannot be null.");
45 }
47 }
48
49 // Token: 0x1700044C RID: 1100
50 // (get) Token: 0x060020D2 RID: 8402 RVA: 0x000495D4 File Offset: 0x000477D4
52 {
53 get
54 {
55 return this.m_objectManager;
56 }
57 }
58
59 // Token: 0x060020D3 RID: 8403 RVA: 0x000495E8 File Offset: 0x000477E8
61 {
62 int num = 1;
63 if (objectInfo.obj == null)
64 {
65 string resourceString = Environment.GetResourceString("Object cannot be null.");
67 }
68 Type objectType = objectInfo.objectType;
69 long objectId = objectInfo.objectId;
70 if (num == 0)
71 {
72 }
73 if (objectInfo.isArray)
74 {
75 return;
76 }
77 if (!objectInfo.isSi)
78 {
80 }
81 int num2 = 1;
84 if (objectId == 0L)
85 {
86 return;
87 }
88 Type type;
89 if (this.ToCode(type) == InternalPrimitiveTypeE.Invalid)
90 {
91 if (num2 == 0)
92 {
93 }
95 StreamingContext context = this.m_context;
99 IFormatterConverter formatterConverter = this.m_formatterConverter;
100 return;
101 }
102 }
103
104 // Token: 0x060020D4 RID: 8404 RVA: 0x00049704 File Offset: 0x00047904
105 private void Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo, string[] memberNames, Type[] memberTypes, object[] memberData, WriteObjectInfo[] memberObjectInfos)
106 {
107 long objectId = objectInfo.objectId;
109 }
110
111 // Token: 0x060020D5 RID: 8405 RVA: 0x000497E8 File Offset: 0x000479E8
112 private void WriteMemberSetup(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo, string memberName, Type memberType, object memberData, WriteObjectInfo memberObjectInfo)
113 {
115 nameInfo.NIFullName = memberName;
116 if (memberObjectInfo != null)
117 {
118 long assemId = memberObjectInfo.assemId;
119 nameInfo.NItype = memberType;
120 nameInfo.NIassemId = assemId;
121 Type objectType = memberObjectInfo.objectType;
123 return;
124 }
125 nameInfo.NItype = memberType;
129 nameInfo2.NItype = memberType;
130 bool nitransmitTypeOnObject = memberNameInfo.NItransmitTypeOnObject;
132 bool niisParentTypeOnObject = memberNameInfo.NIisParentTypeOnObject;
134 this.niPool.Push(nameInfo);
135 this.niPool.Push(nameInfo2);
136 }
137
138 // Token: 0x060020D6 RID: 8406 RVA: 0x00049898 File Offset: 0x00047A98
140 {
141 Type nitype = memberNameInfo.NItype;
142 if (!true)
143 {
144 }
145 if (Nullable.GetUnderlyingType(nitype) != null)
146 {
149 }
151 if (objectInfo.isSi)
152 {
156 }
157 if (memberTypeNameInfo.NIprimitiveTypeEnum != InternalPrimitiveTypeE.Invalid)
158 {
159 return;
160 }
161 Type type = memberData.GetType();
164 if (!true)
165 {
166 }
167 if (memberObjectInfo == null)
168 {
169 return;
170 }
171 long num;
172 if (memberObjectInfo.isArray)
173 {
174 if (type == null)
175 {
176 Type type2 = memberData.GetType();
177 }
178 this.serWriter.WriteMemberNested(memberNameInfo);
181 return;
182 }
183 bool flag = this.WriteKnownValueClass(memberNameInfo, memberTypeNameInfo, num);
184 }
185
186 // Token: 0x060020D7 RID: 8407 RVA: 0x000499F8 File Offset: 0x00047BF8
188 {
189 while (memberNameInfo == null)
190 {
191 Type objectType = objectInfo.objectType;
193 int num = 1;
194 int num2 = 1;
197 long objectId = objectInfo.objectId;
198 nameInfo.NIobjectId = objectId;
199 object obj = objectInfo.obj;
200 if (obj != null)
201 {
202 }
203 Type objectType2 = objectInfo.objectType;
206 StreamingContext context = this.m_context;
210 IFormatterConverter formatterConverter = this.m_formatterConverter;
212 long assemblyId = this.GetAssemblyId(writeObjectInfo);
214 if (writeObjectInfo != null)
215 {
216 Type objectType3 = writeObjectInfo.objectType;
219 Type nitype = nameInfo2.NItype;
220 return;
221 }
226 bool isArray = objectType2.IsArray;
227 int num3 = 1;
228 nameInfo.NIobjectId = objectId;
230 nameInfo3.NIobjectId = objectId;
231 bool nitransmitTypeOnMember = nameInfo.NItransmitTypeOnMember;
233 bool nitransmitTypeOnObject = nameInfo.NItransmitTypeOnObject;
235 bool niisParentTypeOnObject = nameInfo.NIisParentTypeOnObject;
237 long num4 = 0L;
238 int num5;
240 bool niisArray = nameInfo3.NIisArray;
241 int num6 = 2;
243 if (!niisArray)
244 {
245 }
246 if (num6 != 0)
247 {
248 if (num6 == 0)
249 {
250 }
252 {
253 int num7 = 1;
255 }
257 int num8 = 1;
260 bool flag = Converter.IsWriteAsByteArray(nameInfo3.NIprimitiveTypeEnum);
261 bool isValueType = objectType2.IsValueType;
262 if (obj != null)
263 {
264 if (obj == null)
265 {
266 throw new InvalidCastException();
267 }
268 }
269 else
270 {
271 if (false)
272 {
273 return;
274 }
276 this.niPool.Push(nameInfo3);
277 SerStack serStack = this.niPool;
278 return;
279 }
280 }
281 else
282 {
284 if (obj != null && obj == null)
285 {
286 throw new InvalidCastException();
287 }
288 return;
289 }
290 }
291 }
292
293 // Token: 0x060020D8 RID: 8408 RVA: 0x00049C28 File Offset: 0x00047E28
294 private void WriteArrayMember(WriteObjectInfo objectInfo, NameInfo arrayElemTypeNameInfo, object data)
295 {
297 bool flag = this.CheckForNull(objectInfo, arrayElemTypeNameInfo, arrayElemTypeNameInfo, data);
298 if (arrayElemTypeNameInfo.NItransmitTypeOnMember)
299 {
300 Type type = data.GetType();
304 nameInfo.NItype = type;
306 return;
307 }
308 bool niisSealed;
309 if (arrayElemTypeNameInfo.NIsealedStatusChecked)
310 {
312 return;
313 }
317 if (niisSealed)
318 {
320 bool flag2 = this.WriteKnownValueClass(arrayElemTypeNameInfo, arrayElemTypeNameInfo, data);
322 if (!true)
323 {
324 }
326 long num;
329 this.serWriter.WriteItemObjectRef(arrayElemTypeNameInfo, (int)num);
330 return;
331 }
335 while (type2 != null)
336 {
337 }
338 }
339
340 // Token: 0x060020D9 RID: 8409 RVA: 0x00049DC0 File Offset: 0x00047FC0
341 private void WriteRectangle(WriteObjectInfo objectInfo, int rank, int[] maxA, Array array, NameInfo arrayElemNameTypeInfo, int[] lowerBoundA)
342 {
343 if (lowerBoundA != null)
344 {
345 return;
346 }
347 }
348
349 // Token: 0x060020DA RID: 8410 RVA: 0x00049DD8 File Offset: 0x00047FD8
350 private object GetNext([Out] long objID)
351 {
352 if (this.m_objectQueue != null)
353 {
355 if (objectQueue != null)
356 {
357 int head = objectQueue._head;
358 }
359 }
362 throw new ArrayTypeMismatchException();
363 }
364
365 // Token: 0x060020DB RID: 8411 RVA: 0x00049E14 File Offset: 0x00048014
366 private long InternalGetId(object obj, bool assignUniqueIdToValueType, Type type, [Out] bool isNew)
367 {
368 /*
369An exception occurred when decompiling this method (060020DB)
370
371ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int64 System.Runtime.Serialization.Formatters.Binary.ObjectWriter::InternalGetId(System.Object,System.Boolean,System.Type,System.Boolean)
372
373 ---> System.Exception: Basic block has to end with unconditional control flow.
374{
375 IL_0045:
376 stfld:int32(ObjectWriter::m_currentId, ldloc:ObjectWriter(this), ldloc:int32(var_5))
377 stfld:object(ObjectWriter::previousObj, ldloc:ObjectWriter(this), ldloc:object(obj))
378 stfld:int64(ObjectWriter::previousId, ldloc:ObjectWriter(this), ldloc:ObjectIDGenerator[exp:int64](var_6))
379}
380
381 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
382 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
383 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
384 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
385 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
386 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
387 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
388 --- End of inner exception stack trace ---
389 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
390 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
391*/;
392 }
393
394 // Token: 0x060020DC RID: 8412 RVA: 0x00049E7C File Offset: 0x0004807C
395 private long Schedule(object obj, bool assignUniqueIdToValueType, Type type)
396 {
397 long num;
398 return num;
399 }
400
401 // Token: 0x060020DD RID: 8413 RVA: 0x00049E8C File Offset: 0x0004808C
402 private long Schedule(object obj, bool assignUniqueIdToValueType, Type type, WriteObjectInfo objectInfo)
403 {
404 while (obj != null)
405 {
407 if (objectInfo != null)
408 {
409 break;
410 }
411 }
412 return 0L;
413 }
414
415 // Token: 0x060020DE RID: 8414 RVA: 0x00049EA8 File Offset: 0x000480A8
417 {
418 Type nitype = typeNameInfo.NItype;
419 if (!true)
420 {
421 }
422 if (typeNameInfo.NIprimitiveTypeEnum != InternalPrimitiveTypeE.Invalid)
423 {
424 bool niisArray = typeNameInfo.NIisArray;
426 if (niisArray)
427 {
429 this.WriteString(memberNameInfo, typeNameInfo, data);
430 }
431 }
432 return true;
433 }
434
435 // Token: 0x060020DF RID: 8415 RVA: 0x00049EF0 File Offset: 0x000480F0
436 private void WriteObjectRef(NameInfo nameInfo, long objectId)
437 {
438 this.serWriter.WriteMemberObjectRef(nameInfo, (int)objectId);
439 }
440
441 // Token: 0x060020E0 RID: 8416 RVA: 0x00049F0C File Offset: 0x0004810C
453
454 // Token: 0x060020E1 RID: 8417 RVA: 0x00049F88 File Offset: 0x00048188
456 {
457 if (data != null)
458 {
459 }
460 if (memberNameInfo.NIisArrayItem || memberNameInfo.NItransmitTypeOnObject || memberNameInfo.NItransmitTypeOnMember || !objectInfo.isSi)
461 {
462 }
463 if (typeNameInfo.NIisArrayItem)
464 {
466 }
467 return true;
468 }
469
470 // Token: 0x060020E2 RID: 8418 RVA: 0x00049FCC File Offset: 0x000481CC
471 private void WriteSerializedStreamHeader(long topId, long headerId)
472 {
474 long num = 0L;
475 _BinaryWriter.WriteSerializationHeader((int)topId, (int)headerId, 1, (int)num);
476 }
477
478 // Token: 0x060020E3 RID: 8419 RVA: 0x00049FEC File Offset: 0x000481EC
480 {
481 /*
482An exception occurred when decompiling this method (060020E3)
483
484ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Runtime.Serialization.Formatters.Binary.NameInfo System.Runtime.Serialization.Formatters.Binary.ObjectWriter::TypeToNameInfo(System.Type,System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,System.Runtime.Serialization.Formatters.Binary.InternalPrimitiveTypeE,System.Runtime.Serialization.Formatters.Binary.NameInfo)
485
486 ---> System.Exception: Basic block has to end with unconditional control flow.
487{
488 IL_003B:
489 brtrue(IL_003B, ldloc:WriteObjectInfo[exp:bool](objectInfo))
490}
491
492 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
493 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
494 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
495 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
496 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
497 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
498 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
499 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
500 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
501 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
502 --- End of inner exception stack trace ---
503 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
504 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
505*/;
506 }
507
508 // Token: 0x060020E4 RID: 8420 RVA: 0x0004A038 File Offset: 0x00048238
517
518 // Token: 0x060020E5 RID: 8421 RVA: 0x0004A05C File Offset: 0x0004825C
520 {
521 Type objectType = objectInfo.objectType;
524 return nameInfo;
525 }
526
527 // Token: 0x060020E6 RID: 8422 RVA: 0x0004A07C File Offset: 0x0004827C
529 {
530 /*
531An exception occurred when decompiling this method (060020E6)
532
533ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Runtime.Serialization.Formatters.Binary.NameInfo System.Runtime.Serialization.Formatters.Binary.ObjectWriter::TypeToNameInfo(System.Runtime.Serialization.Formatters.Binary.WriteObjectInfo,System.Runtime.Serialization.Formatters.Binary.NameInfo)
534
535 ---> System.Exception: Basic block has to end with unconditional control flow.
536{
537 Block_0:
538 stloc:Type(var_0_06, ldfld:Type(WriteObjectInfo::objectType, ldloc:WriteObjectInfo(objectInfo)))
539 stloc:InternalPrimitiveTypeE(var_1_0E, call:InternalPrimitiveTypeE(ObjectWriter::ToCode, ldloc:ObjectWriter(this), ldloc:Type(var_0_06)))
540 stloc:NameInfo(var_2_19, call:NameInfo(ObjectWriter::TypeToNameInfo, ldloc:ObjectWriter(this), ldloc:Type(var_0_06), ldloc:WriteObjectInfo(objectInfo), ldloc:InternalPrimitiveTypeE(var_1_0E), ldloc:NameInfo(nameInfo)))
541}
542
543 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
544 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
545 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
546 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
547 --- End of inner exception stack trace ---
548 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
549 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
550*/;
551 }
552
553 // Token: 0x060020E7 RID: 8423 RVA: 0x0004A0A4 File Offset: 0x000482A4
555 {
557 if (nameInfo != null)
558 {
559 return;
560 }
562 }
563
564 // Token: 0x060020E8 RID: 8424 RVA: 0x0004A0C4 File Offset: 0x000482C4
566 {
569 return nameInfo;
570 }
571
572 // Token: 0x060020E9 RID: 8425 RVA: 0x0004A0E0 File Offset: 0x000482E0
574 {
576 do
577 {
578 Type type2 = this.previousType;
579 internalPrimitiveTypeE = Converter.ToCode(type);
580 }
582 this.previousType = type;
585 }
586
587 // Token: 0x060020EA RID: 8426 RVA: 0x0004A114 File Offset: 0x00048314
588 private long GetAssemblyId(WriteObjectInfo objectInfo)
589 {
590 if (this.assemblyToIdTable == null)
591 {
592 }
593 string assemblyString = objectInfo.GetAssemblyString();
594 int stringLength = assemblyString._stringLength;
595 long num;
596 if (stringLength != 0)
597 {
598 if (stringLength == 0)
599 {
600 }
603 num = 0L;
604 }
605 string text = "___AssemblyString___" + assemblyString;
606 object obj = this.previousObj;
608 int currentId = this.m_currentId;
613 long num2 = this.previousId;
616 Type objectType = objectInfo.objectType;
617 _BinaryWriter.WriteAssembly(objectType, assemblyString, (int)num2, num != 0L);
618 return num2;
619 }
620
621 // Token: 0x060020EB RID: 8427 RVA: 0x0004A1D0 File Offset: 0x000483D0
622 private Type GetType(object obj)
623 {
624 return obj.GetType();
625 }
626
627 // Token: 0x060020EC RID: 8428 RVA: 0x0004A1E4 File Offset: 0x000483E4
629 {
630 object[] objects = this.niPool.objects;
631 if (this != null)
632 {
633 }
634 throw new InvalidCastException();
635 }
636
637 // Token: 0x060020ED RID: 8429 RVA: 0x0000207A File Offset: 0x0000027A
639 {
640 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
641 }
642
643 // Token: 0x060020EE RID: 8430 RVA: 0x0004A208 File Offset: 0x00048408
645 {
646 this.niPool.Push(nameInfo);
647 }
648
649 // Token: 0x04001156 RID: 4438
651
652 // Token: 0x04001157 RID: 4439
654
655 // Token: 0x04001158 RID: 4440
656 private int m_currentId;
657
658 // Token: 0x04001159 RID: 4441
660
661 // Token: 0x0400115A RID: 4442
663
664 // Token: 0x0400115B RID: 4443
666
667 // Token: 0x0400115C RID: 4444
669
670 // Token: 0x0400115D RID: 4445
671 private long topId;
672
673 // Token: 0x0400115E RID: 4446
674 private string topName;
675
676 // Token: 0x0400115F RID: 4447
677 private Header[] headers;
678
679 // Token: 0x04001160 RID: 4448
681
682 // Token: 0x04001161 RID: 4449
684
685 // Token: 0x04001162 RID: 4450
687
688 // Token: 0x04001163 RID: 4451
690
691 // Token: 0x04001164 RID: 4452
692 internal object[] crossAppDomainArray;
693
694 // Token: 0x04001165 RID: 4453
695 private object previousObj;
696
697 // Token: 0x04001166 RID: 4454
698 private long previousId;
699
700 // Token: 0x04001167 RID: 4455
702
703 // Token: 0x04001168 RID: 4456
705
706 // Token: 0x04001169 RID: 4457
708
709 // Token: 0x0400116A RID: 4458
711 }
712}
class f__AnonymousType0<< Count > j__TPar
static string GetResourceString(string key)
static Type GetUnderlyingType(Type nullableType)
Definition Nullable.2.cs:9
static bool IsWriteAsByteArray(InternalPrimitiveTypeE code)
Definition Converter.cs:19
static InternalPrimitiveTypeE ToCode(Type type)
Definition Converter.cs:12
bool WriteKnownValueClass(NameInfo memberNameInfo, NameInfo typeNameInfo, object data)
void WriteArray(WriteObjectInfo objectInfo, NameInfo memberNameInfo, WriteObjectInfo memberObjectInfo)
void WriteMembers(NameInfo memberNameInfo, NameInfo memberTypeNameInfo, object memberData, WriteObjectInfo objectInfo, NameInfo typeNameInfo, WriteObjectInfo memberObjectInfo)
void WriteArrayMember(WriteObjectInfo objectInfo, NameInfo arrayElemTypeNameInfo, object data)
void WriteString(NameInfo memberNameInfo, NameInfo typeNameInfo, object stringObject)
void Serialize(object graph, Header[] inHeaders, __BinaryWriter serWriter, bool fCheck)
ObjectWriter(ISurrogateSelector selector, StreamingContext context, InternalFE formatterEnums, SerializationBinder binder)
void Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo, string[] memberNames, Type[] memberTypes, object[] memberData, WriteObjectInfo[] memberObjectInfos)
NameInfo TypeToNameInfo(WriteObjectInfo objectInfo)
bool CheckForNull(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo, object data)
bool CheckTypeFormat(FormatterTypeStyle test, FormatterTypeStyle want)
long Schedule(object obj, bool assignUniqueIdToValueType, Type type)
long Schedule(object obj, bool assignUniqueIdToValueType, Type type, WriteObjectInfo objectInfo)
void WriteRectangle(WriteObjectInfo objectInfo, int rank, int[] maxA, Array array, NameInfo arrayElemNameTypeInfo, int[] lowerBoundA)
long InternalGetId(object obj, bool assignUniqueIdToValueType, Type type, [Out] bool isNew)
NameInfo TypeToNameInfo(WriteObjectInfo objectInfo, NameInfo nameInfo)
void WriteObjectRef(NameInfo nameInfo, long objectId)
NameInfo TypeToNameInfo(Type type, WriteObjectInfo objectInfo, InternalPrimitiveTypeE code, NameInfo nameInfo)
void Write(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo)
void WriteMemberSetup(WriteObjectInfo objectInfo, NameInfo memberNameInfo, NameInfo typeNameInfo, string memberName, Type memberType, object memberData, WriteObjectInfo memberObjectInfo)
void WriteMemberObjectRef(NameInfo memberNameInfo, int idRef)
void WriteItem(NameInfo itemNameInfo, NameInfo typeNameInfo, object value)
void WriteSerializationHeader(int topId, int headerId, int minorVersion, int majorVersion)
bool IsPrimitive
Definition Type.cs:780
new Type GetType()
Definition Type.cs:287
bool IsSealed
Definition Type.cs:592
readonly StreamingContextStates m_state