Home | History | Annotate | Download | only in left_child_next_sibling_heap_

Lines Matching refs:p_parent

122 swap_with_parent(node_pointer p_nd, node_pointer p_parent)
124 if (p_parent == m_p_root)
128 _GLIBCXX_DEBUG_ASSERT(p_parent != 0);
129 _GLIBCXX_DEBUG_ASSERT(parent(p_nd) == p_parent);
131 const bool nd_direct_child = p_parent->m_p_l_child == p_nd;
132 const bool parent_root = p_parent->m_p_prev_or_parent == 0;
134 !parent_root&& p_parent->m_p_prev_or_parent->m_p_l_child == p_parent;
136 std::swap(p_parent->m_p_prev_or_parent, p_nd->m_p_prev_or_parent);
137 std::swap(p_parent->m_p_next_sibling, p_nd->m_p_next_sibling);
138 std::swap(p_parent->m_p_l_child, p_nd->m_p_l_child);
139 std::swap(p_parent->m_metadata, p_nd->m_metadata);
142 _GLIBCXX_DEBUG_ASSERT(p_parent->m_p_prev_or_parent != 0);
147 if (p_parent->m_p_next_sibling != 0)
148 p_parent->m_p_next_sibling->m_p_prev_or_parent = p_parent;
150 if (p_parent->m_p_l_child != 0)
151 p_parent->m_p_l_child->m_p_prev_or_parent = p_parent;
162 p_parent->m_p_prev_or_parent->m_p_next_sibling = p_parent;
167 _GLIBCXX_DEBUG_ASSERT(p_parent->m_p_prev_or_parent == p_parent);
169 p_nd->m_p_l_child = p_parent;
170 p_parent->m_p_prev_or_parent = p_nd;
173 _GLIBCXX_DEBUG_ASSERT(parent(p_parent) == p_nd);