// Token: 0x060035CB RID: 13771 RVA: 0x000F4794 File Offset: 0x000F2994 internal void Splay() { SplayTreeNodeRole role; SplayTreeNode parentNode; for (;;) { role = this.Role; if (role == SplayTreeNodeRole.LocalRoot) { goto IL_7F; } parentNode = this.ParentNode; SplayTreeNodeRole role2 = parentNode.Role; if (role2 == SplayTreeNodeRole.LocalRoot) { break; } SplayTreeNode parentNode2 = parentNode.ParentNode; if (role == role2) { if (role == SplayTreeNodeRole.LeftChild) { parentNode2.RotateRight(); parentNode.RotateRight(); } else { parentNode2.RotateLeft(); parentNode.RotateLeft(); } } else if (role == SplayTreeNodeRole.LeftChild) { parentNode.RotateRight(); parentNode2.RotateLeft(); } else { parentNode.RotateLeft(); parentNode2.RotateRight(); } } if (role == SplayTreeNodeRole.LeftChild) { parentNode.RotateRight(); } else { parentNode.RotateLeft(); } IL_7F: Invariant.Assert(this.Role == SplayTreeNodeRole.LocalRoot, "Splay didn't move node to root!"); }
// Token: 0x060035C0 RID: 13760 RVA: 0x000F4378 File Offset: 0x000F2578 internal SplayTreeNode GetNextNode() { SplayTreeNode splayTreeNode = this.RightChildNode; if (splayTreeNode != null) { for (;;) { SplayTreeNode leftChildNode = splayTreeNode.LeftChildNode; if (leftChildNode == null) { break; } splayTreeNode = leftChildNode; } } else { SplayTreeNodeRole role = this.Role; splayTreeNode = this.ParentNode; while (role != SplayTreeNodeRole.LocalRoot) { if (role == SplayTreeNodeRole.LeftChild) { goto IL_41; } role = splayTreeNode.Role; splayTreeNode = splayTreeNode.ParentNode; } splayTreeNode = null; } IL_41: if (splayTreeNode != null) { splayTreeNode.Splay(); } return(splayTreeNode); }