Terraria
v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UTF8BufferMarshaler.cs
Go to the documentation of this file.
1
using
System.Text
;
2
3
namespace
System.StubHelpers
;
4
5
internal
static
class
UTF8BufferMarshaler
6
{
7
internal
unsafe
static
IntPtr
ConvertToNative
(
StringBuilder
sb,
IntPtr
pNativeBuffer,
int
flags)
8
{
9
if
(sb ==
null
)
10
{
11
return
IntPtr
.
Zero
;
12
}
13
string
text
= sb.
ToString
();
14
int
byteCount
=
Encoding
.
UTF8
.GetByteCount(
text
);
15
byte
* ptr = (
byte
*)(
void
*)pNativeBuffer;
16
byteCount
=
text
.GetBytesFromEncoding(ptr,
byteCount
,
Encoding
.
UTF8
);
17
ptr[
byteCount
] = 0;
18
return
(
IntPtr
)ptr;
19
}
20
21
internal
unsafe
static
void
ConvertToManaged
(
StringBuilder
sb,
IntPtr
pNative)
22
{
23
if
(!(pNative ==
IntPtr
.
Zero
))
24
{
25
byte
* ptr = (
byte
*)(
void
*)pNative;
26
int
length
=
string
.strlen(ptr);
27
sb.
ReplaceBufferUtf8Internal
(
new
ReadOnlySpan<byte>
(ptr,
length
));
28
}
29
}
30
}
System.StubHelpers.UTF8BufferMarshaler.ConvertToManaged
static unsafe void ConvertToManaged(StringBuilder sb, IntPtr pNative)
Definition
UTF8BufferMarshaler.cs:21
System.StubHelpers.UTF8BufferMarshaler.ConvertToNative
static unsafe IntPtr ConvertToNative(StringBuilder sb, IntPtr pNativeBuffer, int flags)
Definition
UTF8BufferMarshaler.cs:7
System.StubHelpers.UTF8BufferMarshaler
Definition
UTF8BufferMarshaler.cs:6
System.Text.Encoding.UTF8
static Encoding UTF8
Definition
Encoding.cs:526
System.Text.Encoding
Definition
Encoding.cs:15
System.Text.StringBuilder.ReplaceBufferUtf8Internal
void ReplaceBufferUtf8Internal(ReadOnlySpan< byte > source)
Definition
StringBuilder.cs:488
System.Text.StringBuilder.ToString
override string ToString()
Definition
StringBuilder.cs:679
System.Text.StringBuilder
Definition
StringBuilder.cs:14
System.StubHelpers
Definition
AnsiBSTRMarshaler.cs:3
System.Text
Definition
ConsoleEncoding.cs:1
System.ExceptionArgument.text
@ text
System.ExceptionArgument.length
@ length
System.ExceptionArgument.byteCount
@ byteCount
System.IntPtr.Zero
static readonly IntPtr Zero
Definition
IntPtr.cs:18
System.IntPtr
Definition
IntPtr.cs:14
System.ReadOnlySpan
Definition
ReadOnlySpan.cs:14
source
System.Private.CoreLib
System.StubHelpers
UTF8BufferMarshaler.cs
Generated by
1.10.0