Lines Matching full:current
23 // | parent node | n--> | current node | in MergeInsertInternal()
28 // suppose current node is parent node's left child, then in MergeInsertInternal()
29 // n points to the current node, in MergeInsertInternal()
31 TreapNode* current = root_; // root is current node in MergeInsertInternal() local
33 // stack of pn recording how to go from root to the current node in MergeInsertInternal()
38 if (current == nullptr) { in MergeInsertInternal()
39 current = new (nodeAllocator_.Allocate()) TreapNode(idx, num, refreshRegionDesc); in MergeInsertInternal()
40 CTREE_ASSERT(current != nullptr, "fail to allocate a new node"); in MergeInsertInternal()
41 *pCurrent = current; in MergeInsertInternal()
45 MergeResult res = MergeAt(*current, idx, num, refreshRegionDesc); in MergeInsertInternal()
52 if (m < current->GetIndex()) { in MergeInsertInternal()
55 pCurrent = &(current->l); in MergeInsertInternal()
56 current = current->l; in MergeInsertInternal()
57 } else if (idx > current->GetIndex() + current->GetCount()) { in MergeInsertInternal()
60 pCurrent = &(current->r); in MergeInsertInternal()
61 current = current->r; in MergeInsertInternal()
73 current = *pCurrent; in MergeInsertInternal()
74 CTREE_ASSERT(current, "merge insertion bubbling failed case 1"); in MergeInsertInternal()
75 if (m < current->GetIndex()) { in MergeInsertInternal()
77 if (current->GetCount() < current->l->GetCount()) { in MergeInsertInternal()
78 *pCurrent = RotateLeftChild(*current); in MergeInsertInternal()
83 } else if (idx > current->GetIndex() + current->GetCount()) { in MergeInsertInternal()
85 if (current->GetCount() < current->r->GetCount()) { in MergeInsertInternal()
86 *pCurrent = RotateRightChild(*current); in MergeInsertInternal()