// 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!"); }