Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches

◆ AddNullTerminatedString()

unsafe void System.Diagnostics.Tracing.DataCollector.AddNullTerminatedString ( string value)
inlinepackage

Definition at line 91 of file DataCollector.cs.

92 {
93 if (value == null)
94 {
95 value = string.Empty;
96 }
97 int num = value.IndexOf('\0');
98 if (num < 0)
99 {
100 num = value.Length;
101 }
102 int num2 = (num + 1) * 2;
103 if (bufferNesting != 0)
104 {
105 EnsureBuffer(num2);
106 }
107 if (bufferNesting == 0)
108 {
109 ScalarsEnd();
110 PinArray(value, num2);
111 return;
112 }
113 int startIndex = bufferPos;
114 checked
115 {
116 bufferPos += num2;
117 EnsureBuffer();
118 fixed (char* ptr = value)
119 {
120 void* ptr2 = ptr;
121 Marshal.Copy((IntPtr)ptr2, buffer, startIndex, num2);
122 }
123 }
124 }
static void Copy(int[] source, int startIndex, IntPtr destination, int length)
Definition Marshal.cs:800
unsafe void PinArray(object value, int size)

References System.Diagnostics.Tracing.DataCollector.buffer, System.Diagnostics.Tracing.DataCollector.bufferNesting, System.Diagnostics.Tracing.DataCollector.bufferPos, System.Runtime.InteropServices.Marshal.Copy(), System.Diagnostics.Tracing.DataCollector.EnsureBuffer(), System.Diagnostics.Tracing.DataCollector.PinArray(), System.Diagnostics.Tracing.DataCollector.ScalarsEnd(), System.startIndex, and System.value.