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

◆ GetNodeByIndex()

NodePath System.Data.RBTree< K >.GetNodeByIndex ( int userIndex)
inlineprivate

Definition at line 1148 of file RBTree.cs.

1149 {
1150 int num;
1151 int satelliteRootId;
1152 if (_inUseSatelliteTreeCount == 0)
1153 {
1154 num = ComputeNodeByIndex(root, userIndex + 1);
1155 satelliteRootId = 0;
1156 }
1157 else
1158 {
1160 }
1161 if (num == 0)
1162 {
1163 if (TreeAccessMethod.INDEX_ONLY == _accessMethod)
1164 {
1165 throw ExceptionBuilder.RowOutOfRange(userIndex);
1166 }
1167 throw ExceptionBuilder.InternalRBTreeError(RBTreeError.IndexOutOFRangeinGetNodeByIndex);
1168 }
1169 return new NodePath(num, satelliteRootId);
1170 }
int ComputeNodeByIndex(int index, out int satelliteRootId)
Definition RBTree.cs:1172
readonly TreeAccessMethod _accessMethod
Definition RBTree.cs:217
int _inUseSatelliteTreeCount
Definition RBTree.cs:215

References System.Data.RBTree< K >._accessMethod, System.Data.RBTree< K >._inUseSatelliteTreeCount, System.Data.RBTree< K >.ComputeNodeByIndex(), System.Data.ExceptionBuilder.InternalRBTreeError(), System.Data.RBTree< K >.root, and System.Data.ExceptionBuilder.RowOutOfRange().

Referenced by System.Data.RBTree< K >.DeleteByIndex().