Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
PooledStringBuilder.cs
Go to the documentation of this file.
1
using
System.Text
;
2
3
namespace
System.Reflection.Internal
;
4
5
internal
sealed
class
PooledStringBuilder
6
{
7
public
readonly
StringBuilder
Builder
=
new
StringBuilder
();
8
9
private
readonly
ObjectPool<PooledStringBuilder>
_pool
;
10
11
private
static
readonly
ObjectPool<PooledStringBuilder>
s_poolInstance
=
CreatePool
();
12
13
public
int
Length
=>
Builder
.
Length
;
14
15
private
PooledStringBuilder
(
ObjectPool<PooledStringBuilder>
pool)
16
{
17
_pool
= pool;
18
}
19
20
public
void
Free
()
21
{
22
StringBuilder
builder =
Builder
;
23
if
(builder.
Capacity
<= 1024)
24
{
25
builder.
Clear
();
26
_pool
.Free(
this
);
27
}
28
}
29
30
public
string
ToStringAndFree
()
31
{
32
string
result =
Builder
.
ToString
();
33
Free
();
34
return
result;
35
}
36
37
public
static
ObjectPool<PooledStringBuilder>
CreatePool
()
38
{
39
ObjectPool<PooledStringBuilder>
pool =
null
;
40
pool =
new
ObjectPool<PooledStringBuilder>
(() =>
new
PooledStringBuilder
(pool), 32);
41
return
pool;
42
}
43
44
public
static
PooledStringBuilder
GetInstance
()
45
{
46
return
s_poolInstance
.Allocate();
47
}
48
}
System.Reflection.Internal.ObjectPool
Definition
ObjectPool.cs:6
System.Reflection.Internal.PooledStringBuilder.Length
int Length
Definition
PooledStringBuilder.cs:13
System.Reflection.Internal.PooledStringBuilder.CreatePool
static ObjectPool< PooledStringBuilder > CreatePool()
Definition
PooledStringBuilder.cs:37
System.Reflection.Internal.PooledStringBuilder.s_poolInstance
static readonly ObjectPool< PooledStringBuilder > s_poolInstance
Definition
PooledStringBuilder.cs:11
System.Reflection.Internal.PooledStringBuilder.GetInstance
static PooledStringBuilder GetInstance()
Definition
PooledStringBuilder.cs:44
System.Reflection.Internal.PooledStringBuilder.PooledStringBuilder
PooledStringBuilder(ObjectPool< PooledStringBuilder > pool)
Definition
PooledStringBuilder.cs:15
System.Reflection.Internal.PooledStringBuilder._pool
readonly ObjectPool< PooledStringBuilder > _pool
Definition
PooledStringBuilder.cs:9
System.Reflection.Internal.PooledStringBuilder.Builder
readonly StringBuilder Builder
Definition
PooledStringBuilder.cs:7
System.Reflection.Internal.PooledStringBuilder.Free
void Free()
Definition
PooledStringBuilder.cs:20
System.Reflection.Internal.PooledStringBuilder.ToStringAndFree
string ToStringAndFree()
Definition
PooledStringBuilder.cs:30
System.Reflection.Internal.PooledStringBuilder
Definition
PooledStringBuilder.cs:6
System.Text.StringBuilder.Capacity
int Capacity
Definition
StringBuilder.cs:328
System.Text.StringBuilder.Length
int Length
Definition
StringBuilder.cs:360
System.Text.StringBuilder.Clear
StringBuilder Clear()
Definition
StringBuilder.cs:733
System.Text.StringBuilder.ToString
override string ToString()
Definition
StringBuilder.cs:679
System.Text.StringBuilder
Definition
StringBuilder.cs:14
System.Reflection.Internal
Definition
AbstractMemoryBlock.cs:4
System.Text
Definition
ConsoleEncoding.cs:1
source
System.Reflection.Metadata
System.Reflection.Internal
PooledStringBuilder.cs
Generated by
1.10.0