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

◆ BinarySearchReferenceRange() [1/2]

void System.Reflection.Internal.MemoryBlock.BinarySearchReferenceRange ( int rowCount,
int rowSize,
int referenceOffset,
uint referenceValue,
bool isReferenceSmall,
out int startRowNumber,
out int endRowNumber )
inlinepackage

Definition at line 556 of file MemoryBlock.cs.

557 {
558 int num = BinarySearchReference(rowCount, rowSize, referenceOffset, referenceValue, isReferenceSmall);
559 if (num == -1)
560 {
561 startRowNumber = -1;
562 endRowNumber = -1;
563 return;
564 }
565 startRowNumber = num;
566 while (startRowNumber > 0 && PeekReferenceUnchecked((startRowNumber - 1) * rowSize + referenceOffset, isReferenceSmall) == referenceValue)
567 {
568 startRowNumber--;
569 }
570 endRowNumber = num;
571 while (endRowNumber + 1 < rowCount && PeekReferenceUnchecked((endRowNumber + 1) * rowSize + referenceOffset, isReferenceSmall) == referenceValue)
572 {
573 endRowNumber++;
574 }
575 }
int BinarySearchReference(int rowCount, int rowSize, int referenceOffset, uint referenceValue, bool isReferenceSmall)
uint PeekReferenceUnchecked(int offset, bool smallRefSize)

References System.Reflection.Internal.MemoryBlock.BinarySearchReference(), and System.Reflection.Internal.MemoryBlock.PeekReferenceUnchecked().

Referenced by System.Reflection.Metadata.Ecma335.GenericParamTableReader.BinarySearchTag(), System.Reflection.Metadata.Ecma335.MethodSemanticsTableReader.BinarySearchTag(), System.Reflection.Metadata.Ecma335.GenericParamConstraintTableReader.FindConstraintsForGenericParam(), System.Reflection.Metadata.Ecma335.CustomAttributeTableReader.GetAttributeRange(), System.Reflection.Metadata.Ecma335.DeclSecurityTableReader.GetAttributeRange(), System.Reflection.Metadata.Ecma335.InterfaceImplTableReader.GetInterfaceImplRange(), System.Reflection.Metadata.Ecma335.LocalScopeTableReader.GetLocalScopeRange(), System.Reflection.Metadata.Ecma335.MethodImplTableReader.GetMethodImplRange(), and System.Reflection.Metadata.Ecma335.CustomDebugInformationTableReader.GetRange().