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
StringBuilder.cs
Go to the documentation of this file.
1using System;
7
8namespace System.Text
9{
10 // Token: 0x02000278 RID: 632
12 [StructLayout(0)]
13 public sealed class StringBuilder : ISerializable
14 {
15 // Token: 0x06001544 RID: 5444 RVA: 0x0002C4E8 File Offset: 0x0002A6E8
17 {
19 }
20
21 // Token: 0x06001545 RID: 5445 RVA: 0x0002C504 File Offset: 0x0002A704
23 {
24 }
25
26 // Token: 0x06001546 RID: 5446 RVA: 0x0002C514 File Offset: 0x0002A714
27 public StringBuilder(string value)
28 {
29 if (value != null)
30 {
31 int stringLength = value._stringLength;
32 return;
33 }
34 }
35
36 // Token: 0x06001547 RID: 5447 RVA: 0x0002C530 File Offset: 0x0002A730
37 public StringBuilder(string value, int capacity)
38 {
39 if (value != null)
40 {
41 int stringLength = value._stringLength;
42 return;
43 }
44 }
45
46 // Token: 0x06001548 RID: 5448 RVA: 0x0002C54C File Offset: 0x0002A74C
47 public StringBuilder(string value, int startIndex, int length, int capacity)
48 {
49 if (value == null)
50 {
51 }
52 int num = Math.Max(capacity, length);
55 char[] chunkChars = this.m_ChunkChars;
56 }
57
58 // Token: 0x06001549 RID: 5449 RVA: 0x0002C598 File Offset: 0x0002A798
60 {
61 if (capacity == 0)
62 {
63 if (!true)
64 {
65 }
66 int num = Math.Min(16, maxCapacity);
67 }
69 }
70
71 // Token: 0x0600154A RID: 5450 RVA: 0x0002C5D4 File Offset: 0x0002A7D4
73 {
74 if (info != null)
75 {
76 SerializationInfoEnumerator enumerator = info.GetEnumerator();
77 bool flag = enumerator.MoveNext();
78 string name = enumerator.Name;
79 bool flag2 = name == "m_MaxCapacity";
80 bool flag3 = name == "m_StringValue";
81 bool flag4 = name == "Capacity";
82 int @int = info.GetInt32("Capacity");
83 return;
84 }
85 }
86
87 // Token: 0x0600154B RID: 5451 RVA: 0x0002C66C File Offset: 0x0002A86C
89 {
90 while (info == null)
91 {
92 }
93 int maxCapacity = this.m_MaxCapacity;
94 info.AddValue("m_MaxCapacity", maxCapacity);
95 char[] chunkChars = this.m_ChunkChars;
96 int chunkOffset = this.m_ChunkOffset;
97 info.AddValue("Capacity", maxCapacity);
98 info.AddValue("m_StringValue", this);
99 long num = 0L;
100 info.AddValue("m_currentThread", (int)num);
101 }
102
103 // Token: 0x17000222 RID: 546
104 // (get) Token: 0x0600154C RID: 5452 RVA: 0x0002C6C4 File Offset: 0x0002A8C4
105 // (set) Token: 0x0600154D RID: 5453 RVA: 0x0002C6E0 File Offset: 0x0002A8E0
106 public int Capacity
107 {
108 get
109 {
110 /*
111An exception occurred when decompiling this method (0600154C)
112
113ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 System.Text.StringBuilder::get_Capacity()
114
115 ---> System.Exception: Basic block has to end with unconditional control flow.
116{
117 Block_0:
118 stloc:char[](var_0_06, ldfld:char[](StringBuilder::m_ChunkChars, ldloc:StringBuilder(this)))
119 stloc:int32(var_1_0D, ldfld:int32(StringBuilder::m_ChunkOffset, ldloc:StringBuilder(this)))
120}
121
122 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
123 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
124 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
125 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
126 --- End of inner exception stack trace ---
127 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
128 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
129*/;
130 }
131 set
132 {
133 int maxCapacity = this.m_MaxCapacity;
134 int chunkLength = this.m_ChunkLength;
135 int maxCapacity2 = this.m_MaxCapacity;
136 char[] chunkChars = this.m_ChunkChars;
137 char[] chunkChars2 = this.m_ChunkChars;
138 int chunkLength2 = this.m_ChunkLength;
139 }
140 }
141
142 // Token: 0x17000223 RID: 547
143 // (get) Token: 0x0600154E RID: 5454 RVA: 0x0002C71C File Offset: 0x0002A91C
144 public int MaxCapacity
145 {
146 get
147 {
148 return this.m_MaxCapacity;
149 }
150 }
151
152 // Token: 0x0600154F RID: 5455 RVA: 0x0002C730 File Offset: 0x0002A930
153 public int EnsureCapacity(int capacity)
154 {
155 /*
156An exception occurred when decompiling this method (0600154F)
157
158ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 System.Text.StringBuilder::EnsureCapacity(System.Int32)
159
160 ---> System.Exception: Basic block has to end with unconditional control flow.
161{
162 Block_0:
163 stloc:char[](var_0_06, ldfld:char[](StringBuilder::m_ChunkChars, ldloc:StringBuilder(this)))
164 stloc:int32(var_1_0D, ldfld:int32(StringBuilder::m_ChunkOffset, ldloc:StringBuilder(this)))
165 callsetter:int32(StringBuilder::set_Capacity, ldloc:StringBuilder(this), ldloc:int32(capacity))
166 stloc:char[](var_2_1B, ldfld:char[](StringBuilder::m_ChunkChars, ldloc:StringBuilder(this)))
167 stloc:int32(var_3_22, ldfld:int32(StringBuilder::m_ChunkOffset, ldloc:StringBuilder(this)))
168}
169
170 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
171 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
172 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
173 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
174 --- End of inner exception stack trace ---
175 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
176 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
177*/;
178 }
179
180 // Token: 0x06001550 RID: 5456 RVA: 0x0002C760 File Offset: 0x0002A960
181 public override string ToString()
182 {
183 /*
184An exception occurred when decompiling this method (06001550)
185
186ICSharpCode.Decompiler.DecompilerException: Error decompiling System.String System.Text.StringBuilder::ToString()
187
188 ---> System.Exception: Basic block has to end with unconditional control flow.
189{
190 IL_0022:
191 stloc:int32(var_4_28, ldfld:int32(StringBuilder::m_ChunkLength, ldloc:StringBuilder(this)))
192 stloc:char[](var_5_30, ldfld:char[](StringBuilder::m_ChunkChars, ldloc:StringBuilder(this)))
193 brtrue(IL_0000, ldfld:StringBuilder[exp:bool](StringBuilder::m_ChunkPrevious, ldloc:StringBuilder(this)))
194}
195
196 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
197 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
198 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
199 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
200 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
201 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
202 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
203 --- End of inner exception stack trace ---
204 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
205 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
206*/;
207 }
208
209 // Token: 0x06001551 RID: 5457 RVA: 0x0002C7A8 File Offset: 0x0002A9A8
210 public string ToString(int startIndex, int length)
211 {
212 int chunkLength = this.m_ChunkLength;
213 int maxCapacity = this.m_MaxCapacity;
214 string text = string.FastAllocateString(length);
215 if (text != null)
216 {
218 }
219 return text;
220 }
221
222 // Token: 0x06001552 RID: 5458 RVA: 0x0002C7EC File Offset: 0x0002A9EC
224 {
225 long num = 0L;
226 this.Length = (int)num;
227 return this;
228 }
229
230 // Token: 0x17000224 RID: 548
231 // (get) Token: 0x06001553 RID: 5459 RVA: 0x0002C804 File Offset: 0x0002AA04
232 // (set) Token: 0x06001554 RID: 5460 RVA: 0x0002C820 File Offset: 0x0002AA20
233 public int Length
234 {
235 get
236 {
237 /*
238An exception occurred when decompiling this method (06001553)
239
240ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Int32 System.Text.StringBuilder::get_Length()
241
242 ---> System.Exception: Basic block has to end with unconditional control flow.
243{
244 Block_0:
245 stloc:int32(var_0_06, ldfld:int32(StringBuilder::m_ChunkLength, ldloc:StringBuilder(this)))
246 stloc:int32(var_1_0D, ldfld:int32(StringBuilder::m_MaxCapacity, ldloc:StringBuilder(this)))
247}
248
249 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
250 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
251 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
252 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
253 --- End of inner exception stack trace ---
254 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
255 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
256*/;
257 }
258 set
259 {
260 int maxCapacity = this.m_MaxCapacity;
261 if (value != 0 || this.m_ChunkPrevious != null)
262 {
263 int chunkLength = this.m_ChunkLength;
264 int maxCapacity2 = this.m_MaxCapacity;
265 return;
266 }
267 }
268 }
269
270 // Token: 0x17000225 RID: 549
271 [IndexerName("Chars")]
272 public char this[int index]
273 {
274 get
275 {
276 /*
277An exception occurred when decompiling this method (06001555)
278
279ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Char System.Text.StringBuilder::get_Chars(System.Int32)
280
281 ---> System.Exception: Basic block has to end with unconditional control flow.
282{
283 IL_0000:
284 stloc:int32(var_0_06, ldfld:int32(StringBuilder::m_ChunkOffset, ldloc:StringBuilder(this)))
285 brtrue(IL_0000, ldfld:StringBuilder[exp:bool](StringBuilder::m_ChunkPrevious, ldloc:StringBuilder(this)))
286}
287
288 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
289 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
290 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
291 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
292 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
293 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
294 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
295 --- End of inner exception stack trace ---
296 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
297 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
298*/;
299 }
300 set
301 {
302 do
303 {
304 int chunkOffset = this.m_ChunkOffset;
305 }
306 while (this.m_ChunkPrevious != null);
307 }
308 }
309
310 // Token: 0x06001557 RID: 5463 RVA: 0x0002C8D0 File Offset: 0x0002AAD0
312 {
313 if (repeatCount != 0)
314 {
315 int chunkLength = this.m_ChunkLength;
316 int maxCapacity = this.m_MaxCapacity;
317 int maxCapacity2 = this.m_MaxCapacity;
318 char[] chunkChars = this.m_ChunkChars;
320 this.ExpandByABlock(repeatCount);
321 char[] chunkChars2 = this.m_ChunkChars;
322 long num = 0L;
323 this.m_ChunkLength = (int)num;
324 }
325 return this;
326 }
327
328 // Token: 0x06001558 RID: 5464 RVA: 0x0002C924 File Offset: 0x0002AB24
330 {
331 StringBuilder stringBuilder;
332 if (value != null && charCount != 0)
333 {
334 stringBuilder = this.Append(value, charCount);
335 return stringBuilder;
336 }
337 return stringBuilder;
338 }
339
340 // Token: 0x06001559 RID: 5465 RVA: 0x0002C950 File Offset: 0x0002AB50
342 {
343 if (value != null)
344 {
345 char[] chunkChars = this.m_ChunkChars;
346 int stringLength = value._stringLength;
348 this.AppendHelper(value);
349 return this;
350 }
351 return this;
352 }
353
354 // Token: 0x0600155A RID: 5466 RVA: 0x0002C99C File Offset: 0x0002AB9C
355 private void AppendHelper(string value)
356 {
357 if (value != null)
358 {
360 return;
361 }
362 int stringLength = value._stringLength;
363 }
364
365 // Token: 0x0600155B RID: 5467 RVA: 0x0002C9BC File Offset: 0x0002ABBC
366 public StringBuilder Append(string value, int startIndex, int count)
367 {
368 while (value == null)
369 {
370 int stringLength;
371 if (stringLength == 0)
372 {
373 return this;
374 }
375 }
376 if (count != 0)
377 {
378 int stringLength = value._stringLength;
380 StringBuilder stringBuilder;
381 return stringBuilder;
382 }
383 return this;
384 }
385
386 // Token: 0x0600155C RID: 5468 RVA: 0x0002C9EC File Offset: 0x0002ABEC
388 {
389 StringBuilder stringBuilder;
390 if (value != null)
391 {
393 int maxCapacity = value.m_MaxCapacity;
394 return stringBuilder;
395 }
396 return stringBuilder;
397 }
398
399 // Token: 0x0600155D RID: 5469 RVA: 0x0002CA10 File Offset: 0x0002AC10
401 {
402 int chunkLength = this.m_ChunkLength;
403 int maxCapacity = this.m_MaxCapacity;
404 int maxCapacity2 = this.m_MaxCapacity;
405 char[] chunkChars = this.m_ChunkChars;
406 if (maxCapacity == 0)
407 {
408 }
409 if (Math.Min(0, count) == 0)
410 {
411 this.ExpandByABlock(count);
412 char[] chunkChars2 = this.m_ChunkChars;
413 int chunkLength2 = this.m_ChunkLength;
414 if (maxCapacity == 0)
415 {
416 }
417 int num = Math.Min(0, count);
418 }
419 char[] chunkChars3 = this.m_ChunkChars;
420 if (chunkChars3 != null)
421 {
423 while (chunkChars3 != null)
424 {
425 }
426 }
428 int chunkLength3 = this.m_ChunkLength;
430 return value;
431 }
432
433 // Token: 0x0600155E RID: 5470 RVA: 0x0002CAB0 File Offset: 0x0002ACB0
435 {
436 string newLine = Environment.NewLine;
437 return this.Append(newLine);
438 }
439
440 // Token: 0x0600155F RID: 5471 RVA: 0x0002CACC File Offset: 0x0002ACCC
442 {
443 StringBuilder stringBuilder = this.Append(value);
444 string newLine = Environment.NewLine;
445 return this.Append(newLine);
446 }
447
448 // Token: 0x06001560 RID: 5472 RVA: 0x0002CAF0 File Offset: 0x0002ACF0
450 {
451 int chunkLength = this.m_ChunkLength;
452 int maxCapacity = this.m_MaxCapacity;
453 int chunkLength2 = this.m_ChunkLength;
454 if (maxCapacity == 0)
455 {
456 }
457 int num = Math.Min(43151360, chunkLength2);
460 }
461
462 // Token: 0x06001561 RID: 5473 RVA: 0x0002CB40 File Offset: 0x0002AD40
464 {
465 int chunkLength = this.m_ChunkLength;
466 int maxCapacity = this.m_MaxCapacity;
467 if (startIndex == 0)
468 {
469 long num = 0L;
470 this.Length = (int)num;
471 return this;
472 }
473 return this;
474 }
475
476 // Token: 0x06001562 RID: 5474 RVA: 0x0002CB78 File Offset: 0x0002AD78
478 {
479 char[] chunkChars = this.m_ChunkChars;
480 return this;
481 }
482
483 // Token: 0x06001563 RID: 5475 RVA: 0x0002CB98 File Offset: 0x0002AD98
485 {
486 StringBuilder stringBuilder;
487 return stringBuilder;
488 }
489
490 // Token: 0x06001564 RID: 5476 RVA: 0x0002CBA8 File Offset: 0x0002ADA8
492 {
493 return this;
494 }
495
496 // Token: 0x06001565 RID: 5477 RVA: 0x0002CBB8 File Offset: 0x0002ADB8
498 {
499 return this;
500 }
501
502 // Token: 0x06001566 RID: 5478 RVA: 0x0002CBC8 File Offset: 0x0002ADC8
504 {
505 return this;
506 }
507
508 // Token: 0x06001567 RID: 5479 RVA: 0x0002CBD8 File Offset: 0x0002ADD8
509 [CLSCompliant(false)]
511 {
512 return this;
513 }
514
515 // Token: 0x06001568 RID: 5480 RVA: 0x0002CBE8 File Offset: 0x0002ADE8
517 {
518 if (!true)
519 {
520 }
522 string text;
523 return this.Append(text);
524 }
525
526 // Token: 0x06001569 RID: 5481 RVA: 0x0002CC08 File Offset: 0x0002AE08
528 {
529 if (value != null)
530 {
531 }
532 return this;
533 }
534
535 // Token: 0x0600156A RID: 5482 RVA: 0x0002CC1C File Offset: 0x0002AE1C
537 {
538 if (value != null)
539 {
540 }
541 StringBuilder stringBuilder;
542 return stringBuilder;
543 }
544
545 // Token: 0x0600156B RID: 5483 RVA: 0x0002CC30 File Offset: 0x0002AE30
547 {
548 return this;
549 }
550
551 // Token: 0x0600156C RID: 5484 RVA: 0x0002CC40 File Offset: 0x0002AE40
552 public StringBuilder Insert(int index, string value)
553 {
554 int chunkLength = this.m_ChunkLength;
555 int maxCapacity = this.m_MaxCapacity;
556 if (value != null)
557 {
559 int stringLength = value._stringLength;
560 }
561 return this;
562 }
563
564 // Token: 0x0600156D RID: 5485 RVA: 0x0002CC70 File Offset: 0x0002AE70
565 public StringBuilder Insert(int index, char value)
566 {
567 this.Insert(index, value, 1);
568 return this;
569 }
570
571 // Token: 0x0600156E RID: 5486 RVA: 0x0002CC88 File Offset: 0x0002AE88
572 public StringBuilder AppendFormat(string format, object arg0)
573 {
574 StringBuilder stringBuilder;
575 return stringBuilder;
576 }
577
578 // Token: 0x0600156F RID: 5487 RVA: 0x0002CC98 File Offset: 0x0002AE98
579 public StringBuilder AppendFormat(string format, object arg0, object arg1)
580 {
581 StringBuilder stringBuilder;
582 return stringBuilder;
583 }
584
585 // Token: 0x06001570 RID: 5488 RVA: 0x0002CCA8 File Offset: 0x0002AEA8
586 public StringBuilder AppendFormat(string format, params object[] args)
587 {
588 while (args == null)
589 {
590 }
591 StringBuilder stringBuilder;
592 return stringBuilder;
593 }
594
595 // Token: 0x06001571 RID: 5489 RVA: 0x0002CCBC File Offset: 0x0002AEBC
596 public StringBuilder AppendFormat(IFormatProvider provider, string format, object arg0)
597 {
598 StringBuilder stringBuilder;
599 return stringBuilder;
600 }
601
602 // Token: 0x06001572 RID: 5490 RVA: 0x0000207A File Offset: 0x0000027A
603 private static void FormatError()
604 {
605 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
606 }
607
608 // Token: 0x06001573 RID: 5491 RVA: 0x0002CCCC File Offset: 0x0002AECC
610 {
611 while (format == null)
612 {
613 }
614 int stringLength = format._stringLength;
615 if (provider != null && provider != null && provider == null)
616 {
617 throw new InvalidCastException();
618 }
619 long num = 0L;
620 char c = format[(int)num];
621 char c2 = format[(int)num];
622 char c3 = format[(int)num];
623 return this.Append(c);
624 }
625
626 // Token: 0x06001574 RID: 5492 RVA: 0x0002CE50 File Offset: 0x0002B050
627 public StringBuilder Replace(string oldValue, string newValue)
628 {
629 int chunkLength = this.m_ChunkLength;
630 int maxCapacity = this.m_MaxCapacity;
631 StringBuilder stringBuilder;
632 return stringBuilder;
633 }
634
635 // Token: 0x06001575 RID: 5493 RVA: 0x0002CE6C File Offset: 0x0002B06C
636 public StringBuilder Replace(string oldValue, string newValue, int startIndex, int count)
637 {
638 do
639 {
640 int chunkLength = this.m_ChunkLength;
641 int maxCapacity = this.m_MaxCapacity;
642 }
643 while (oldValue == null || oldValue._stringLength == 0);
644 if (newValue == null)
645 {
646 }
648 int chunkOffset = chunkPrevious.m_ChunkOffset;
649 if (!this.StartsWith(chunkPrevious, startIndex, count, oldValue) || count == 0)
650 {
651 int stringLength = oldValue._stringLength;
652 if (count == 0)
653 {
654 goto IL_0055;
655 }
656 }
657 int chunkLength2 = chunkPrevious.m_ChunkLength;
658 IL_0055:
659 int chunkOffset2 = chunkPrevious.m_ChunkOffset;
660 int stringLength2 = oldValue._stringLength;
661 int stringLength3 = oldValue._stringLength;
662 int chunkOffset3 = this.m_ChunkOffset;
664 return this;
665 }
666
667 // Token: 0x06001576 RID: 5494 RVA: 0x0002CF04 File Offset: 0x0002B104
668 [CLSCompliant(false)]
670 {
671 int chunkLength = this.m_ChunkLength;
672 int maxCapacity = this.m_MaxCapacity;
673 int maxCapacity2 = this.m_MaxCapacity;
674 return "The length cannot be greater than the capacity.";
675 }
676
677 // Token: 0x06001577 RID: 5495 RVA: 0x0002CF2C File Offset: 0x0002B12C
678 private unsafe void Insert(int index, char* value, int valueCount)
679 {
680 int chunkLength = this.m_ChunkLength;
681 int maxCapacity = this.m_MaxCapacity;
682 }
683
684 // Token: 0x06001578 RID: 5496 RVA: 0x0002CF48 File Offset: 0x0002B148
686 {
687 if (value != null)
688 {
690 return;
691 }
692 int stringLength = value._stringLength;
693 int chunkOffset = sourceChunk.m_ChunkOffset;
694 int num = 1;
695 this.MakeRoom(replacements, replacementsCount, sourceChunk, stringLength, num != 0);
696 int stringLength2 = value._stringLength;
697 char[] chunkChars = sourceChunk.m_ChunkChars;
698 }
699
700 // Token: 0x06001579 RID: 5497 RVA: 0x0002CF9C File Offset: 0x0002B19C
701 private bool StartsWith(StringBuilder chunk, int indexInChunk, int count, string value)
702 {
703 int stringLength = value._stringLength;
704 long num = 0L;
705 if (count != 0)
706 {
707 int chunkLength = chunk.m_ChunkLength;
708 int chunkOffset = chunk.m_ChunkOffset;
709 int chunkOffset2 = this.m_ChunkOffset;
711 int chunkOffset3 = chunkPrevious.m_ChunkOffset;
712 if (chunkPrevious == null)
713 {
714 }
715 char c = value[(int)num];
716 char[] chunkChars = this.m_ChunkChars;
717 int stringLength2 = value._stringLength;
718 return;
719 }
720 }
721
722 // Token: 0x0600157A RID: 5498 RVA: 0x0002D004 File Offset: 0x0002B204
724 {
725 if (count != 0)
726 {
727 int num = Math.Min(0, count);
728 int chunkOffset = this.m_ChunkOffset;
730 return;
731 }
732 }
733
734 // Token: 0x0600157B RID: 5499 RVA: 0x0002D038 File Offset: 0x0002B238
735 private unsafe static void ThreadSafeCopy(char* sourcePtr, char[] destination, int destinationIndex, int count)
736 {
737 string.wstrcpy(sourcePtr, sourcePtr, count);
738 }
739
740 // Token: 0x0600157C RID: 5500 RVA: 0x0002D050 File Offset: 0x0002B250
742 {
743 }
744
745 // Token: 0x0600157D RID: 5501 RVA: 0x0002D064 File Offset: 0x0002B264
747 {
748 int chunkOffset = this.m_ChunkOffset;
749 return this.m_ChunkPrevious.FindChunkForIndex(index);
750 }
751
752 // Token: 0x17000226 RID: 550
753 // (get) Token: 0x0600157E RID: 5502 RVA: 0x0002D088 File Offset: 0x0002B288
755 {
756 get
757 {
758 char[] chunkChars = this.m_ChunkChars;
759 int num = 1;
760 if (chunkChars != null)
761 {
763 }
764 if (num != 0)
765 {
767 return;
768 }
769 }
770 }
771
772 // Token: 0x0600157F RID: 5503 RVA: 0x0002D0B4 File Offset: 0x0002B2B4
774 {
776 int maxCapacity = chunk.m_MaxCapacity;
777 int chunkOffset = this.m_ChunkOffset;
779 int chunkOffset2 = chunkPrevious.m_ChunkOffset;
780 return chunkPrevious;
781 }
782
783 // Token: 0x06001580 RID: 5504 RVA: 0x0002D0EC File Offset: 0x0002B2EC
785 {
786 int chunkLength = this.m_ChunkLength;
787 int maxCapacity = this.m_MaxCapacity;
788 int maxCapacity2 = this.m_MaxCapacity;
789 int num = 8000;
790 int num2 = Math.Min(43151360, num);
792 int chunkLength2 = this.m_ChunkLength;
793 char[] chunkChars = this.m_ChunkChars;
794 int maxCapacity3 = this.m_MaxCapacity;
795 int chunkLength3 = this.m_ChunkLength;
796 int maxCapacity4 = this.m_MaxCapacity;
798 }
799
800 // Token: 0x06001581 RID: 5505 RVA: 0x0002D15C File Offset: 0x0002B35C
810
811 // Token: 0x06001582 RID: 5506 RVA: 0x0002D19C File Offset: 0x0002B39C
812 private void MakeRoom(int index, int count, [Out] StringBuilder chunk, [Out] int indexInChunk, bool doNotMoveFollowingChars)
813 {
814 int chunkOffset = this.m_ChunkOffset;
816 int chunkOffset2 = chunkPrevious.m_ChunkOffset;
817 char[] chunkChars = chunkPrevious.m_ChunkChars;
818 int num = 16;
819 int num2 = Math.Max(count, num);
821 int num3;
823 }
824
825 // Token: 0x06001583 RID: 5507 RVA: 0x0002D1E8 File Offset: 0x0002B3E8
827 {
830 if (previousBlock != null)
831 {
832 int chunkLength = previousBlock.m_ChunkLength;
833 int maxCapacity2 = previousBlock.m_MaxCapacity;
835 }
836 }
837
838 // Token: 0x06001584 RID: 5508 RVA: 0x0002D224 File Offset: 0x0002B424
839 private void Remove(int startIndex, int count, [Out] StringBuilder chunk, [Out] int indexInChunk)
840 {
841 int chunkOffset = this.m_ChunkOffset;
842 }
843
844 // Token: 0x04000B24 RID: 2852
845 internal char[] m_ChunkChars;
846
847 // Token: 0x04000B25 RID: 2853
849
850 // Token: 0x04000B26 RID: 2854
851 internal int m_ChunkLength;
852
853 // Token: 0x04000B27 RID: 2855
854 internal int m_ChunkOffset;
855
856 // Token: 0x04000B28 RID: 2856
857 internal int m_MaxCapacity;
858
859 // Token: 0x04000B29 RID: 2857
860 internal const int DefaultCapacity = 16;
861
862 // Token: 0x04000B2A RID: 2858
863 private const string CapacityField = "Capacity";
864
865 // Token: 0x04000B2B RID: 2859
866 private const string MaxCapacityField = "m_MaxCapacity";
867
868 // Token: 0x04000B2C RID: 2860
869 private const string StringValueField = "m_StringValue";
870
871 // Token: 0x04000B2D RID: 2861
872 private const string ThreadIDField = "m_currentThread";
873
874 // Token: 0x04000B2E RID: 2862
875 internal const int MaxChunkSize = 8000;
876
877 // Token: 0x04000B2F RID: 2863
878 private const int IndexLimit = 1000000;
879
880 // Token: 0x04000B30 RID: 2864
881 private const int WidthLimit = 1000000;
882 }
883}
class f__AnonymousType0<< Count > j__TPar
static string NewLine
static CultureInfo CurrentCulture
static byte Min(byte val1, byte val2)
Definition Math.cs:152
static byte Max(byte val1, byte val2)
Definition Math.cs:111
void AddValue(string name, object value, Type type)
StringBuilder(string value, int capacity)
void MakeRoom(int index, int count, [Out] StringBuilder chunk, [Out] int indexInChunk, bool doNotMoveFollowingChars)
StringBuilder Append(char[] value)
StringBuilder Append(ReadOnlySpan< char > value)
StringBuilder AppendFormat(IFormatProvider provider, string format, object arg0)
StringBuilder AppendFormat(string format, params object[] args)
void Remove(int startIndex, int count, [Out] StringBuilder chunk, [Out] int indexInChunk)
StringBuilder Append(string value)
bool StartsWith(StringBuilder chunk, int indexInChunk, int count, string value)
StringBuilder FindChunkForIndex(int index)
string ToString(int startIndex, int length)
StringBuilder Append(object value)
StringBuilder(SerializationInfo info, StreamingContext context)
StringBuilder Next(StringBuilder chunk)
StringBuilder AppendCore(StringBuilder value, int startIndex, int count)
StringBuilder Append(int value)
StringBuilder Append(uint value)
StringBuilder(int capacity, int maxCapacity)
StringBuilder Append(byte value)
void AppendHelper(string value)
StringBuilder Append(long value)
static void ThreadSafeCopy(char[] source, int sourceIndex, Span< char > destination, int destinationIndex, int count)
StringBuilder AppendSpanFormattable< T >(T value)
StringBuilder Insert(int index, char value)
int EnsureCapacity(int capacity)
unsafe void Insert(int index, char *value, int valueCount)
StringBuilder Append(string value, int startIndex, int count)
StringBuilder(string value, int startIndex, int length, int capacity)
StringBuilder Replace(string oldValue, string newValue, int startIndex, int count)
StringBuilder(StringBuilder from)
unsafe void ReplaceInPlaceAtChunk(StringBuilder chunk, int indexInChunk, char *value, int count)
StringBuilder AppendLine(string value)
StringBuilder AppendFormat(string format, object arg0, object arg1)
StringBuilder Replace(string oldValue, string newValue)
StringBuilder Remove(int startIndex, int length)
void ExpandByABlock(int minBlockCharCount)
void CopyTo(int sourceIndex, Span< char > destination, int count)
StringBuilder Append(char[] value, int startIndex, int charCount)
StringBuilder AppendFormatHelper(IFormatProvider provider, string format, ParamsArray args)
override string ToString()
Span< char > RemainingCurrentChunk
StringBuilder Append(char value, int repeatCount)
StringBuilder(int size, int maxCapacity, StringBuilder previousBlock)
StringBuilder AppendFormat(string format, object arg0)
static unsafe void ThreadSafeCopy(char *sourcePtr, char[] destination, int destinationIndex, int count)
StringBuilder Append(char value)
StringBuilder Insert(int index, string value)
unsafe StringBuilder Append(char *value, int valueCount)
void ReplaceAllInChunk(int[] replacements, int replacementsCount, StringBuilder sourceChunk, int removeCount, string value)
StringBuilder Append(StringBuilder value)
StringBuilder Append(float value)
static void ThrowArgumentOutOfRangeException()
void GetObjectData(SerializationInfo info, StreamingContext context)