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

◆ GetOrAddDocumentName()

BlobHandle System.Reflection.Metadata.Ecma335.MetadataBuilder.GetOrAddDocumentName ( string value)
inline

Definition at line 2537 of file MetadataBuilder.cs.

2538 {
2539 if (value == null)
2540 {
2541 Throw.ArgumentNull("value");
2542 }
2543 char c = ChooseSeparator(value);
2544 PooledBlobBuilder instance = PooledBlobBuilder.GetInstance();
2545 instance.WriteByte((byte)c);
2546 PooledBlobBuilder instance2 = PooledBlobBuilder.GetInstance();
2547 int num = 0;
2548 while (true)
2549 {
2550 int num2 = value.IndexOf(c, num);
2551 instance2.WriteUTF8(value, num, ((num2 >= 0) ? num2 : value.Length) - num, allowUnpairedSurrogates: true, prependSize: false);
2552 instance.WriteCompressedInteger(GetOrAddBlob(instance2).GetHeapOffset());
2553 if (num2 == -1)
2554 {
2555 break;
2556 }
2557 if (num2 == value.Length - 1)
2558 {
2559 instance.WriteByte(0);
2560 break;
2561 }
2562 instance2.Clear();
2563 num = num2 + 1;
2564 }
2565 instance2.Free();
2566 BlobHandle orAddBlob = GetOrAddBlob(instance);
2567 instance.Free();
2568 return orAddBlob;
2569 }

References System.Reflection.Throw.ArgumentNull(), System.Reflection.Metadata.Ecma335.MetadataBuilder.ChooseSeparator(), System.Collections.Generic.Dictionary< TKey, TValue >.Clear(), System.Reflection.Metadata.PooledBlobBuilder.Free(), System.Reflection.Metadata.BlobHandle.GetHeapOffset(), System.Reflection.Metadata.PooledBlobBuilder.GetInstance(), System.Reflection.Metadata.Ecma335.MetadataBuilder.GetOrAddBlob(), System.value, System.Reflection.Metadata.BlobBuilder.WriteByte(), and System.Reflection.Metadata.BlobBuilder.WriteCompressedInteger().