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

◆ LinkSuffix()

void System.Reflection.Metadata.BlobBuilder.LinkSuffix ( BlobBuilder suffix)
inlineinherited

Definition at line 410 of file BlobBuilder.cs.

411 {
412 if (suffix == null)
413 {
414 throw new ArgumentNullException("suffix");
415 }
416 if (!IsHead || !suffix.IsHead)
417 {
418 Throw.InvalidOperationBuilderAlreadyLinked();
419 }
420 if (suffix.Count == 0)
421 {
422 return;
423 }
424 bool flag = Count == 0;
425 byte[] buffer = suffix._buffer;
426 uint length = suffix._length;
427 int previousLength = suffix.PreviousLength;
428 int length2 = suffix.Length;
429 suffix._buffer = _buffer;
430 suffix._length = FrozenLength;
431 _buffer = buffer;
432 _length = length;
433 PreviousLength += suffix.Length + previousLength;
434 suffix._previousLengthOrFrozenSuffixLengthDelta = previousLength + length2 - suffix.Length;
435 if (!flag)
436 {
438 BlobBuilder firstChunk2 = suffix.FirstChunk;
441 suffix._nextOrPrevious = ((firstChunk2 != suffix) ? firstChunk2 : ((firstChunk != this) ? firstChunk : suffix));
442 if (nextOrPrevious != this)
443 {
444 nextOrPrevious._nextOrPrevious = suffix;
445 }
446 if (blobBuilder != suffix)
447 {
448 blobBuilder._nextOrPrevious = ((firstChunk != this) ? firstChunk : suffix);
449 }
450 }
452 suffix.CheckInvariants();
453 }

References System.Reflection.Metadata.BlobBuilder._buffer, System.Reflection.Metadata.BlobBuilder._length, System.Reflection.Metadata.BlobBuilder._nextOrPrevious, System.buffer, System.Reflection.Metadata.BlobBuilder.CheckInvariants(), System.Reflection.Metadata.BlobBuilder.Count, System.Reflection.Metadata.BlobBuilder.FirstChunk, System.Reflection.Metadata.BlobBuilder.FrozenLength, System.Reflection.Throw.InvalidOperationBuilderAlreadyLinked(), System.Reflection.Metadata.BlobBuilder.IsHead, System.length, System.length2, System.Reflection.Metadata.BlobBuilder.PreviousLength, and System.suffix.

Referenced by System.Reflection.PortableExecutable.ManagedTextSection.Serialize(), and System.Reflection.Metadata.Ecma335.MetadataBuilder.WriteAligned().