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

◆ SortContents()

static void System.Formats.Asn1.AsnWriter.SortContents ( byte[] buffer,
int start,
int end )
inlinestaticprivate

Definition at line 430 of file AsnWriter.cs.

431 {
432 int num = end - start;
433 if (num == 0)
434 {
435 return;
436 }
437 AsnReader asnReader = new AsnReader(new ReadOnlyMemory<byte>(buffer, start, num), AsnEncodingRules.BER);
438 List<(int, int)> list = new List<(int, int)>();
439 int num2 = start;
440 while (asnReader.HasData)
441 {
442 ReadOnlyMemory<byte> readOnlyMemory = asnReader.ReadEncodedValue();
443 list.Add((num2, readOnlyMemory.Length));
444 num2 += readOnlyMemory.Length;
445 }
446 ArrayIndexSetOfValueComparer comparer = new ArrayIndexSetOfValueComparer(buffer);
447 list.Sort(comparer);
449 num2 = 0;
450 foreach (var (srcOffset, num3) in list)
451 {
452 Buffer.BlockCopy(buffer, srcOffset, array, num2, num3);
453 num2 += num3;
454 }
455 Buffer.BlockCopy(array, 0, buffer, start, num);
457 }
void Add(TKey key, TValue value)
static void Return(byte[] array, int clearSize=-1)
Definition CryptoPool.cs:12
static byte[] Rent(int minimumLength)
Definition CryptoPool.cs:7

References System.Collections.Generic.Dictionary< TKey, TValue >.Add(), System.array, System.Buffer.BlockCopy(), System.buffer, System.comparer, System.list, System.Security.Cryptography.CryptoPool.Rent(), System.Security.Cryptography.CryptoPool.Return(), and System.start.

Referenced by System.Formats.Asn1.AsnWriter.PopTag().