Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
UTF8BufferMarshaler.cs
Go to the documentation of this file.
1using System.Text;
2
3namespace System.StubHelpers;
4
5internal 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);
28 }
29 }
30}
static unsafe void ConvertToManaged(StringBuilder sb, IntPtr pNative)
static unsafe IntPtr ConvertToNative(StringBuilder sb, IntPtr pNativeBuffer, int flags)
static Encoding UTF8
Definition Encoding.cs:526
void ReplaceBufferUtf8Internal(ReadOnlySpan< byte > source)
override string ToString()
static readonly IntPtr Zero
Definition IntPtr.cs:18