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

◆ GetByteCountWithFallback() [3/3]

virtual unsafe int System.Text.Encoding.GetByteCountWithFallback ( ReadOnlySpan< char > chars,
int originalCharsLength,
EncoderNLS encoder )
inlineprotectedvirtualinherited

Definition at line 1177 of file Encoding.cs.

1178 {
1179 fixed (char* ptr = &MemoryMarshal.GetReference(chars))
1180 {
1181 EncoderFallbackBuffer encoderFallbackBuffer = EncoderFallbackBuffer.CreateAndInitialize(this, encoder, originalCharsLength);
1182 int num = 0;
1183 Rune result;
1184 int charsConsumed;
1185 while (Rune.DecodeFromUtf16(chars, out result, out charsConsumed) != OperationStatus.NeedMoreData || encoder == null || encoder.MustFlush)
1186 {
1187 int num2 = encoderFallbackBuffer.InternalFallbackGetByteCount(chars, out charsConsumed);
1188 num += num2;
1189 if (num < 0)
1190 {
1192 }
1193 chars = chars.Slice(charsConsumed);
1194 if (!chars.IsEmpty)
1195 {
1196 num2 = GetByteCountFast((char*)Unsafe.AsPointer(ref MemoryMarshal.GetReference(chars)), chars.Length, null, out charsConsumed);
1197 num += num2;
1198 if (num < 0)
1199 {
1201 }
1202 chars = chars.Slice(charsConsumed);
1203 }
1204 if (chars.IsEmpty)
1205 {
1206 break;
1207 }
1208 }
1209 return num;
1210 }
1211 }
virtual unsafe int GetByteCountFast(char *pChars, int charsLength, EncoderFallback fallback, out int charsConsumed)
Definition Encoding.cs:1144
static void ThrowConversionOverflow()
Definition Encoding.cs:1084

References System.chars, System.Text.EncoderFallbackBuffer.CreateAndInitialize(), System.Text.Rune.DecodeFromUtf16(), System.Runtime.Serialization.Dictionary, System.Text.Encoding.GetByteCountFast(), System.Text.EncoderNLS.MustFlush, and System.Text.Encoding.ThrowConversionOverflow().