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

◆ UnsafeWriteText()

unsafe void System.Xml.XmlBinaryNodeWriter.UnsafeWriteText ( char * chars,
int charCount )
inlineprivate

Definition at line 700 of file XmlBinaryNodeWriter.cs.

701 {
702 if (charCount == 1)
703 {
704 switch (*chars)
705 {
706 case '0':
707 WriteTextNode(XmlBinaryNodeType.MinText);
708 return;
709 case '1':
710 WriteTextNode(XmlBinaryNodeType.OneText);
711 return;
712 }
713 }
714 if (charCount <= 85)
715 {
716 int offset;
717 byte[] buffer = GetBuffer(2 + charCount * 3, out offset);
719 if (num / 2 <= charCount)
720 {
721 buffer[offset] = 152;
722 }
723 else
724 {
725 buffer[offset] = 182;
727 }
729 buffer[offset + 1] = (byte)num;
730 Advance(2 + num);
731 }
732 else
733 {
735 if (num2 / 2 > charCount)
736 {
737 WriteTextNodeWithLength(XmlBinaryNodeType.UnicodeChars8Text, charCount * 2);
739 }
740 else
741 {
742 WriteTextNodeWithLength(XmlBinaryNodeType.Chars8Text, num2);
744 }
745 }
746 }
void WriteTextNodeWithLength(XmlBinaryNodeType nodeType, int length)
void WriteTextNode(XmlBinaryNodeType nodeType)
unsafe void UnsafeWriteUnicodeChars(char *chars, int charCount)
unsafe void UnsafeWriteUTF8Chars(char *chars, int charCount)
unsafe int UnsafeGetUTF8Chars(char *chars, int charCount, byte[] buffer, int offset)
unsafe int UnsafeGetUTF8Length(char *chars, int charCount)
unsafe int UnsafeGetUnicodeChars(char *chars, int charCount, byte[] buffer, int offset)
byte[] GetBuffer(int count, out int offset)

References System.Xml.XmlBinaryNodeWriter._textNodeOffset, System.Xml.XmlStreamNodeWriter.Advance(), System.buffer, System.charCount, System.chars, System.Xml.Dictionary, System.Xml.XmlStreamNodeWriter.GetBuffer(), System.offset, System.Xml.XmlStreamNodeWriter.UnsafeGetUnicodeChars(), System.Xml.XmlStreamNodeWriter.UnsafeGetUTF8Chars(), System.Xml.XmlStreamNodeWriter.UnsafeGetUTF8Length(), System.Xml.XmlStreamNodeWriter.UnsafeWriteUnicodeChars(), System.Xml.XmlStreamNodeWriter.UnsafeWriteUTF8Chars(), System.Xml.XmlBinaryNodeWriter.WriteTextNode(), and System.Xml.XmlBinaryNodeWriter.WriteTextNodeWithLength().

Referenced by System.Xml.XmlBinaryNodeWriter.WriteText(), and System.Xml.XmlBinaryNodeWriter.WriteText().