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
TlsOverPerCoreLockedStacksArrayPool.cs
Go to the documentation of this file.
1using System;
5
6namespace System.Buffers
7{
8 // Token: 0x02000666 RID: 1638
9 internal sealed class TlsOverPerCoreLockedStacksArrayPool<T> : ArrayPool<T>
10 {
11 // Token: 0x060031CF RID: 12751 RVA: 0x0006BB58 File Offset: 0x00069D58
13 {
14 if (!true)
15 {
16 }
17 }
18
19 // Token: 0x060031D0 RID: 12752 RVA: 0x0006BB74 File Offset: 0x00069D74
21 {
22 /*
23An exception occurred when decompiling this method (060031D0)
24
25ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/PerCoreLockedStacks<T> System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1::CreatePerCoreLockedStacks(System.Int32)
26
27 ---> System.Exception: Basic block has to end with unconditional control flow.
28{
29 Block_0:
30 stloc:int32(var_0_06, ldfld:int32(TlsOverPerCoreLockedStacksArrayPool`1::_callbackCreated, ldloc:TlsOverPerCoreLockedStacksArrayPool`1(this)))
31 stloc:class System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/PerCoreLockedStacks[](var_1_0D, ldfld:class System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/PerCoreLockedStacks<!T>[][exp:class System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/PerCoreLockedStacks[]](TlsOverPerCoreLockedStacksArrayPool`1::_buckets, ldloc:TlsOverPerCoreLockedStacksArrayPool`1(this)))
32}
33
34 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
35 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
36 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
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 88
38 --- End of inner exception stack trace ---
39 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
40 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
41*/;
42 }
43
44 // Token: 0x170007FC RID: 2044
45 // (get) Token: 0x060031D1 RID: 12753 RVA: 0x0000207A File Offset: 0x0000027A
46 private int Id
47 {
48 get
49 {
50 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
51 }
52 }
53
54 // Token: 0x060031D2 RID: 12754 RVA: 0x0006BB90 File Offset: 0x00069D90
55 public override T[] Rent(int minimumLength)
56 {
57 /*
58An exception occurred when decompiling this method (060031D2)
59
60ICSharpCode.Decompiler.DecompilerException: Error decompiling T[] System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1::Rent(System.Int32)
61
62 ---> System.Exception: Basic block has to end with unconditional control flow.
63{
64 IL_0023:
65 stloc:class System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/PerCoreLockedStacks[](var_5_29, ldfld:class System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/PerCoreLockedStacks<!T>[][exp:class System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/PerCoreLockedStacks[]](TlsOverPerCoreLockedStacksArrayPool`1::_buckets, ldloc:TlsOverPerCoreLockedStacksArrayPool`1(this)))
66 stloc:int32[](var_7_31, ldfld:int32[](TlsOverPerCoreLockedStacksArrayPool`1::_bucketArraySizes, ldloc:TlsOverPerCoreLockedStacksArrayPool`1(this)))
67}
68
69 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
70 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
71 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
72 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
73 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
74 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
75 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
76 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
77 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
78 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
79 --- End of inner exception stack trace ---
80 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
81 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
82*/;
83 }
84
85 // Token: 0x060031D3 RID: 12755 RVA: 0x0006BBD0 File Offset: 0x00069DD0
86 public override void Return(T[] array, bool clearArray = false)
87 {
88 if (array == null)
89 {
90 return;
91 }
93 long num = 0L;
94 Array.Clear(array, (int)num, clearArray ? 1 : 0);
95 if (this._bucketArraySizes == null)
96 {
97 }
98 if (array == null)
99 {
100 throw new ArrayTypeMismatchException();
101 }
102 if (clearArray)
103 {
105 if (array == null)
106 {
107 }
108 return;
109 }
110 }
111
112 // Token: 0x060031D4 RID: 12756 RVA: 0x0006BC28 File Offset: 0x00069E28
113 public bool Trim()
114 {
117 long num = 0L;
119 int value = tickCount.m_value;
120 int value2 = tickCount.m_value;
121 int value3 = tickCount.m_value;
122 if (num != 0L)
123 {
124 }
125 long num2 = 0L;
126 int num3 = 7;
127 int value4;
128 if (tickCount != 0)
129 {
130 value4 = tickCount.m_value;
131 }
132 if (num2 == 0L)
133 {
134 if (num3 == 0)
135 {
136 if (value4 == 0)
137 {
138 }
139 long value5 = num2.m_value;
140 long value6 = num2.m_value;
141 long value7 = num2.m_value;
142 long num4 = 0L;
143 if (num2 != 0L)
144 {
145 long value8 = num2.m_value;
146 }
147 if (num4 == 0L)
148 {
149 }
150 }
151 throw new OutOfMemoryException();
152 }
153 throw new OutOfMemoryException();
154 }
155
156 // Token: 0x060031D5 RID: 12757 RVA: 0x0006BD18 File Offset: 0x00069F18
157 private static bool Gen2GcCallbackFunc(object target)
158 {
159 throw new InvalidCastException();
160 }
161
162 // Token: 0x060031D6 RID: 12758 RVA: 0x0006BD2C File Offset: 0x00069F2C
164 {
165 if (!true)
166 {
167 }
169 }
170
171 // Token: 0x060031D7 RID: 12759 RVA: 0x0006BD44 File Offset: 0x00069F44
172 private static bool GetTrimBuffers()
173 {
174 return true;
175 }
176
177 // Token: 0x060031D8 RID: 12760 RVA: 0x0006BD54 File Offset: 0x00069F54
178 // Note: this type is marked as 'beforefieldinit'.
182
183 // Token: 0x04001AB2 RID: 6834
185
186 // Token: 0x04001AB3 RID: 6835
188
189 // Token: 0x04001AB4 RID: 6836
191 private static T[][] t_tlsBuckets;
192
193 // Token: 0x04001AB5 RID: 6837
194 private int _callbackCreated;
195
196 // Token: 0x04001AB6 RID: 6838
197 private static readonly bool s_trimBuffers;
198
199 // Token: 0x04001AB7 RID: 6839
201
202 // Token: 0x02000667 RID: 1639
203 private enum MemoryPressure
204 {
205 // Token: 0x04001AB9 RID: 6841
206 Low,
207 // Token: 0x04001ABA RID: 6842
208 Medium,
209 // Token: 0x04001ABB RID: 6843
210 High
211 }
212
213 // Token: 0x02000668 RID: 1640
214 private sealed class PerCoreLockedStacks
215 {
216 // Token: 0x060031D9 RID: 12761 RVA: 0x0006BD68 File Offset: 0x00069F68
218 {
219 int processorCount = Environment.ProcessorCount;
220 int num = 64;
221 int num2 = Math.Min(processorCount, num);
222 }
223
224 // Token: 0x060031DA RID: 12762 RVA: 0x0006BD98 File Offset: 0x00069F98
225 public void TryPush(T[] array)
226 {
227 int num = 1;
229 if (num == 0)
230 {
231 }
233 }
234
235 // Token: 0x060031DB RID: 12763 RVA: 0x0006BDBC File Offset: 0x00069FBC
236 public T[] TryPop()
237 {
238 for (;;)
239 {
240 int num = 1;
242 if (num == 0)
243 {
244 }
246 {
247 return;
248 }
249 }
250 }
251
252 // Token: 0x060031DC RID: 12764 RVA: 0x0006BDE8 File Offset: 0x00069FE8
254 {
255 /*
256An exception occurred when decompiling this method (060031DC)
257
258ICSharpCode.Decompiler.DecompilerException: Error decompiling System.Boolean System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/PerCoreLockedStacks::Trim(System.UInt32,System.Int32,System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/MemoryPressure<T>,System.Int32[])
259
260 ---> System.Exception: Basic block has to end with unconditional control flow.
261{
262 Block_0:
263 stloc:class System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/LockedStack[](var_0_06, ldfld:class System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/LockedStack<!T>[][exp:class System.Buffers.TlsOverPerCoreLockedStacksArrayPool`1/LockedStack[]](PerCoreLockedStacks::_perCoreStacks, ldloc:PerCoreLockedStacks(this)))
264}
265
266 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
267 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
268 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
269 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
270 --- End of inner exception stack trace ---
271 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
272 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
273*/;
274 }
275
276 // Token: 0x04001ABC RID: 6844
278 }
279
280 // Token: 0x02000669 RID: 1641
281 private sealed class LockedStack
282 {
283 // Token: 0x060031DD RID: 12765 RVA: 0x0000207A File Offset: 0x0000027A
284 public bool TryPush(T[] array)
285 {
286 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
287 }
288
289 // Token: 0x060031DE RID: 12766 RVA: 0x0000207A File Offset: 0x0000027A
290 public T[] TryPop()
291 {
292 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
293 }
294
295 // Token: 0x060031DF RID: 12767 RVA: 0x0000207A File Offset: 0x0000027A
297 {
298 throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
299 }
300
301 // Token: 0x060031E0 RID: 12768 RVA: 0x0006BE00 File Offset: 0x0006A000
302 public LockedStack()
303 {
304 this._arrays = this;
305 base..ctor();
306 }
307
308 // Token: 0x04001ABD RID: 6845
309 private readonly T[][] _arrays;
310
311 // Token: 0x04001ABE RID: 6846
312 private int _count;
313
314 // Token: 0x04001ABF RID: 6847
315 private uint _firstStackItemMS;
316 }
317 }
318}
class f__AnonymousType0<< Count > j__TPar
void IList. Clear()
Definition Array.cs:99
void Trim(uint tickCount, int id, TlsOverPerCoreLockedStacksArrayPool< T >.MemoryPressure pressure, int bucketSize)
bool Trim(uint tickCount, int id, TlsOverPerCoreLockedStacksArrayPool< T >.MemoryPressure pressure, int[] bucketSizes)
readonly TlsOverPerCoreLockedStacksArrayPool< T >.LockedStack[] _perCoreStacks
static TlsOverPerCoreLockedStacksArrayPool< T >.MemoryPressure GetMemoryPressure()
readonly TlsOverPerCoreLockedStacksArrayPool< T >.PerCoreLockedStacks[] _buckets
static readonly ConditionalWeakTable< T[][], object > s_allTlsBuckets
TlsOverPerCoreLockedStacksArrayPool< T >.PerCoreLockedStacks CreatePerCoreLockedStacks(int bucketIndex)
static int ProcessorCount
static int TickCount
static byte Min(byte val1, byte val2)
Definition Math.cs:152