248 {
250 EncoderReplacementFallback encoderReplacementFallback = null;
251 char c = '\0';
252 if (encoder != null)
253 {
255 encoderReplacementFallback = encoder.Fallback as EncoderReplacementFallback;
256 }
257 else
258 {
259 encoderReplacementFallback = base.EncoderFallback as EncoderReplacementFallback;
260 }
261 if (encoderReplacementFallback != null && encoderReplacementFallback.MaxCharCount == 1)
262 {
263 if (c > '\0')
264 {
266 }
268 }
269 EncoderFallbackBuffer encoderFallbackBuffer = null;
270 int num = 0;
272 EncoderFallbackBufferHelper encoderFallbackBufferHelper = new EncoderFallbackBufferHelper(encoderFallbackBuffer);
273 if (c > '\0')
274 {
276 encoderFallbackBufferHelper = new EncoderFallbackBufferHelper(encoderFallbackBuffer);
277 encoderFallbackBufferHelper.InternalInitialize(
chars, ptr, encoder, _setEncoder: false);
278 encoderFallbackBufferHelper.InternalFallback(c, ref
chars);
279 }
280 char c2;
281 while ((c2 = ((encoderFallbackBuffer !=
null) ? encoderFallbackBufferHelper.InternalGetNextChar() :
'\0')) != 0 ||
chars < ptr)
282 {
283 if (c2 == '\0')
284 {
287 }
289 {
290 if (encoderFallbackBuffer == null)
291 {
293 encoderFallbackBufferHelper = new EncoderFallbackBufferHelper(encoderFallbackBuffer);
294 encoderFallbackBufferHelper.InternalInitialize(ptr -
count, ptr, encoder, _setEncoder: false);
295 }
296 encoderFallbackBufferHelper.InternalFallback(c2, ref
chars);
297 }
298 else
299 {
300 num++;
301 }
302 }
303 return num;
304 }
void CheckMemorySection()
new EncoderFallbackBuffer FallbackBuffer
EncoderFallback EncoderFallback
unsafe byte * _mapUnicodeToBytes