671 {
673 DBCSDecoder dBCSDecoder = (DBCSDecoder)baseDecoder;
674 DecoderFallbackBuffer decoderFallbackBuffer = null;
677 DecoderFallbackBufferHelper decoderFallbackBufferHelper = new DecoderFallbackBufferHelper(decoderFallbackBuffer);
678 if (dBCSDecoder != null && dBCSDecoder.bLeftOver > 0)
679 {
681 {
682 if (!dBCSDecoder.MustFlush)
683 {
684 return 0;
685 }
686 decoderFallbackBuffer = dBCSDecoder.FallbackBuffer;
687 decoderFallbackBufferHelper = new DecoderFallbackBufferHelper(decoderFallbackBuffer);
688 decoderFallbackBufferHelper.InternalInitialize(
bytes,
null);
689 byte[] bytes2 = new byte[1] { dBCSDecoder.bLeftOver };
690 return decoderFallbackBufferHelper.InternalFallback(bytes2,
bytes);
691 }
692 int num2 = dBCSDecoder.bLeftOver << 8;
696 {
697 num--;
698 decoderFallbackBuffer = dBCSDecoder.FallbackBuffer;
699 decoderFallbackBufferHelper = new DecoderFallbackBufferHelper(decoderFallbackBuffer);
700 decoderFallbackBufferHelper.InternalInitialize(ptr -
count,
null);
701 byte[] bytes3 = new byte[2]
702 {
703 (byte)(num2 >> 8),
704 (byte)num2
705 };
706 num += decoderFallbackBufferHelper.InternalFallback(bytes3,
bytes);
707 }
708 }
710 {
714 if (c == '\ufffe')
715 {
716 num--;
718 {
719 num3 <<= 8;
723 }
724 else
725 {
726 if (dBCSDecoder != null && !dBCSDecoder.MustFlush)
727 {
728 break;
729 }
730 num++;
731 c = '\0';
732 }
733 }
734 if (c == '\0' && num3 != 0)
735 {
736 if (decoderFallbackBuffer == null)
737 {
738 decoderFallbackBuffer = ((dBCSDecoder !=
null) ? dBCSDecoder.FallbackBuffer : base.
DecoderFallback.CreateFallbackBuffer());
739 decoderFallbackBufferHelper = new DecoderFallbackBufferHelper(decoderFallbackBuffer);
740 decoderFallbackBufferHelper.InternalInitialize(ptr -
count,
null);
741 }
742 num--;
743 byte[] bytes4 = ((num3 >= 256) ? new byte[2]
744 {
745 (byte)(num3 >> 8),
746 (byte)num3
747 } : new byte[1] { (byte)num3 });
748 num += decoderFallbackBufferHelper.InternalFallback(bytes4,
bytes);
749 }
750 }
751 return num;
752 }
void CheckMemorySection()
unsafe char * mapBytesToUnicode
DecoderFallback DecoderFallback