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

◆ SerializeStringHeap()

static ImmutableArray< int > System.Reflection.Metadata.Ecma335.MetadataBuilder.SerializeStringHeap ( BlobBuilder heapBuilder,
Dictionary< string, StringHandle > strings,
int stringHeapStartOffset )
inlinestaticprivate

Definition at line 2678 of file MetadataBuilder.cs.

2679 {
2681 list.Sort(SuffixSort.Instance);
2682 int num = list.Count + 1;
2683 ImmutableArray<int>.Builder builder = ImmutableArray.CreateBuilder<int>(num);
2684 builder.Count = num;
2685 builder[0] = 0;
2686 heapBuilder.WriteByte(0);
2687 string text = string.Empty;
2689 {
2691 if (text.EndsWith(item.Key, StringComparison.Ordinal) && !BlobUtilities.IsLowSurrogateChar(item.Key[0]))
2692 {
2693 builder[item.Value.GetWriterVirtualIndex()] = num2 - (BlobUtilities.GetUTF8ByteCount(item.Key) + 1);
2694 }
2695 else
2696 {
2697 builder[item.Value.GetWriterVirtualIndex()] = num2;
2699 heapBuilder.WriteByte(0);
2700 }
2701 text = item.Key;
2702 }
2703 return builder.MoveToImmutable();
2704 }

References System.Collections.Generic.Dictionary< TKey, TValue >.Count, System.Reflection.BlobUtilities.GetUTF8ByteCount(), System.Reflection.Metadata.Ecma335.MetadataBuilder.SuffixSort.Instance, System.Reflection.BlobUtilities.IsLowSurrogateChar(), System.item, System.list, and System.text.

Referenced by System.Reflection.Metadata.Ecma335.MetadataBuilder.GetSerializedMetadata().