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

◆ Utf8NullTerminatedEquals()

bool System.Reflection.Internal.MemoryBlock.Utf8NullTerminatedEquals ( int offset,
string text,
MetadataStringDecoder utf8Decoder,
char terminator,
bool ignoreCase )
inlinepackage

Definition at line 290 of file MemoryBlock.cs.

291 {
292 int firstDifferenceIndex;
293 FastComparisonResult fastComparisonResult = Utf8NullTerminatedFastCompare(offset, text, 0, out firstDifferenceIndex, terminator, ignoreCase);
294 if (fastComparisonResult == FastComparisonResult.Inconclusive)
295 {
296 int numberOfBytesRead;
297 string text2 = PeekUtf8NullTerminated(offset, null, utf8Decoder, out numberOfBytesRead, terminator);
298 return text2.Equals(text, ignoreCase ? StringComparison.OrdinalIgnoreCase : StringComparison.Ordinal);
299 }
300 return fastComparisonResult == FastComparisonResult.Equal;
301 }
unsafe string PeekUtf8NullTerminated(int offset, byte[]? prefix, MetadataStringDecoder utf8Decoder, out int numberOfBytesRead, char terminator='\0')
unsafe FastComparisonResult Utf8NullTerminatedFastCompare(int offset, string text, int textStart, out int firstDifferenceIndex, char terminator, bool ignoreCase)

References System.offset, System.Reflection.Internal.MemoryBlock.PeekUtf8NullTerminated(), System.text, and System.Reflection.Internal.MemoryBlock.Utf8NullTerminatedFastCompare().

Referenced by System.Reflection.Metadata.Ecma335.StringHeap.Equals().