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

◆ FindCodePage()

unsafe bool System.Text.BaseCodePageEncoding.FindCodePage ( int codePage)
inlineprivateinherited

Definition at line 209 of file BaseCodePageEncoding.cs.

210 {
211 byte[] array = new byte[sizeof(CodePageIndex)];
213 {
215 int codePageCount;
216 fixed (byte* ptr = &s_codePagesDataHeader[0])
217 {
218 CodePageDataFileHeader* ptr2 = (CodePageDataFileHeader*)ptr;
219 codePageCount = ptr2->CodePageCount;
220 }
221 fixed (byte* ptr3 = &array[0])
222 {
223 CodePageIndex* ptr4 = (CodePageIndex*)ptr3;
224 for (int i = 0; i < codePageCount; i++)
225 {
227 if (ptr4->CodePage == codePage)
228 {
229 long position = s_codePagesEncodingDataStream.Position;
230 s_codePagesEncodingDataStream.Seek(ptr4->Offset, SeekOrigin.Begin);
233 if (i == codePageCount - 1)
234 {
235 m_dataSize = (int)(s_codePagesEncodingDataStream.Length - ptr4->Offset - m_codePageHeader.Length);
236 }
237 else
238 {
239 s_codePagesEncodingDataStream.Seek(position, SeekOrigin.Begin);
240 int offset = ptr4->Offset;
242 m_dataSize = ptr4->Offset - offset - m_codePageHeader.Length;
243 }
244 return true;
245 }
246 }
247 }
248 }
249 return false;
250 }
static readonly byte[] s_codePagesDataHeader
static unsafe void ReadCodePageHeader(Stream stream, byte[] codePageHeader)
static unsafe void ReadCodePageIndex(Stream stream, byte[] codePageIndex)

References System.array, System.Text.BaseCodePageEncoding.CodePageDataFileHeader.CodePageCount, System.Runtime.Serialization.Dictionary, System.L, System.Text.BaseCodePageEncoding.m_codePageHeader, System.Text.BaseCodePageEncoding.m_dataSize, System.Text.BaseCodePageEncoding.m_firstDataWordOffset, System.offset, System.Text.BaseCodePageEncoding.ReadCodePageHeader(), System.Text.BaseCodePageEncoding.ReadCodePageIndex(), System.Text.BaseCodePageEncoding.s_codePagesDataHeader, System.Text.BaseCodePageEncoding.s_codePagesEncodingDataStream, and System.Text.BaseCodePageEncoding.s_streamLock.

Referenced by System.Text.BaseCodePageEncoding.LoadCodePageTables().