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

◆ ForbidUndefinedCharacters()

unsafe void System.Text.Encodings.Web.AllowedBmpCodePointsBitmap.ForbidUndefinedCharacters ( )
inline

Definition at line 38 of file AllowedBmpCodePointsBitmap.cs.

39 {
40 fixed (uint* pointer = Bitmap)
41 {
43 Span<uint> span = new Span<uint>(pointer, 2048);
44 if (Vector.IsHardwareAccelerated && BitConverter.IsLittleEndian)
45 {
46 while (!values.IsEmpty)
47 {
48 (new Vector<uint>(values) & new Vector<uint>(span)).CopyTo(span);
49 values = values.Slice(Vector<byte>.Count);
50 span = span.Slice(Vector<uint>.Count);
51 }
52 return;
53 }
54 for (int i = 0; i < span.Length; i++)
55 {
56 span[i] &= BinaryPrimitives.ReadUInt32LittleEndian(values.Slice(i * 4));
57 }
58 }
59 }
static uint ReadUInt32LittleEndian(ReadOnlySpan< byte > source)
static bool IsHardwareAccelerated
Definition Vector.cs:14
static ReadOnlySpan< byte > GetDefinedBmpCodePointsBitmapLittleEndian()

References System.Text.Encodings.Web.AllowedBmpCodePointsBitmap.Bitmap, System.Text.Unicode.UnicodeHelpers.GetDefinedBmpCodePointsBitmapLittleEndian(), System.Numerics.Vector< T >.IsHardwareAccelerated, System.BitConverter.IsLittleEndian, System.Span< T >.Length, System.pointer, System.Buffers.Binary.BinaryPrimitives.ReadUInt32LittleEndian(), System.Span< T >.Slice(), and System.values.

Referenced by System.Text.Encodings.Web.OptimizedInboxTextEncoder.OptimizedInboxTextEncoder().