Home | History | Annotate | Download | only in thin_heap_

Lines Matching refs:p_y

93 fix(node_pointer p_y)
97 if (p_y->m_p_prev_or_parent == 0)
99 fix_root(p_y);
102 else if (p_y->m_metadata == 1&& p_y->m_p_next_sibling == 0)
104 if (p_y->m_p_l_child != 0)
106 fix_sibling_rank_1_unmarked(p_y);
110 fix_sibling_rank_1_marked(p_y);
111 p_y = p_y->m_p_prev_or_parent;
113 else if (p_y->m_metadata > p_y->m_p_next_sibling->m_metadata + 1)
115 _GLIBCXX_DEBUG_ASSERT(p_y->m_p_l_child != 0);
116 if (p_y->m_metadata != p_y->m_p_l_child->m_metadata + 2)
118 fix_sibling_general_unmarked(p_y);
122 fix_sibling_general_marked(p_y);
123 p_y = p_y->m_p_prev_or_parent;
125 else if ((p_y->m_p_l_child == 0&&
126 p_y->m_metadata == 2) ||(p_y->m_p_l_child != 0&&
127 p_y->m_metadata == p_y->m_p_l_child->m_metadata + 3))
129 node_pointer p_z = p_y->m_p_prev_or_parent;
130 fix_child(p_y);
131 p_y = p_z;
141 fix_root(node_pointer p_y)
143 _GLIBCXX_DEBUG_ASSERT(p_y->m_p_prev_or_parent == 0);
144 make_root(p_y);
145 PB_DS_ASSERT_NODE_CONSISTENT(p_y, true)
151 fix_sibling_rank_1_unmarked(node_pointer p_y)
153 _GLIBCXX_DEBUG_ASSERT(p_y->m_p_prev_or_parent != 0);
155 _GLIBCXX_DEBUG_ONLY(node_pointer p_w = p_y->m_p_l_child;)
158 _GLIBCXX_DEBUG_ASSERT(p_y->m_p_next_sibling == 0);
160 p_y->m_p_next_sibling = p_y->m_p_l_child;
161 p_y->m_p_next_sibling->m_p_prev_or_parent = p_y;
162 p_y->m_p_l_child = 0;
163 PB_DS_ASSERT_NODE_CONSISTENT(p_y, false)
169 fix_sibling_rank_1_marked(node_pointer p_y)
171 _GLIBCXX_DEBUG_ASSERT(p_y->m_p_prev_or_parent != 0);
172 _GLIBCXX_DEBUG_ASSERT(p_y->m_p_l_child == 0);
173 p_y->m_metadata = 0;
174 PB_DS_ASSERT_NODE_CONSISTENT(p_y, false)
180 fix_sibling_general_unmarked(node_pointer p_y)
182 _GLIBCXX_DEBUG_ASSERT(p_y->m_p_prev_or_parent != 0);
184 node_pointer p_w = p_y->m_p_l_child;
188 p_y->m_p_l_child = p_w->m_p_next_sibling;
189 p_w->m_p_next_sibling->m_p_prev_or_parent = p_y;
191 p_w->m_p_next_sibling = p_y->m_p_next_sibling;
195 p_y->m_p_next_sibling = p_w;
196 p_w->m_p_prev_or_parent = p_y;
198 PB_DS_ASSERT_NODE_CONSISTENT(p_y, false)
204 fix_sibling_general_marked(node_pointer p_y)
206 _GLIBCXX_DEBUG_ASSERT(p_y->m_p_prev_or_parent != 0);
207 --p_y->m_metadata;
208 PB_DS_ASSERT_NODE_CONSISTENT(p_y, false)
214 fix_child(node_pointer p_y)
216 _GLIBCXX_DEBUG_ASSERT(p_y->m_p_prev_or_parent != 0);
218 if (p_y->m_p_next_sibling != 0)
219 p_y->m_p_next_sibling->m_p_prev_or_parent = p_y->m_p_prev_or_parent;
221 if (p_y->m_p_prev_or_parent->m_p_l_child == p_y)
222 p_y->m_p_prev_or_parent->m_p_l_child = p_y->m_p_next_sibling;
224 p_y->m_p_prev_or_parent->m_p_next_sibling = p_y->m_p_next_sibling;
226 make_root_and_link(p_y);
256 node_pointer p_y = p_nd->m_p_prev_or_parent;
257 _GLIBCXX_DEBUG_ASSERT(p_y != 0);
260 p_nd->m_p_next_sibling->m_p_prev_or_parent = p_y;
262 if (p_y->m_p_l_child == p_nd)
263 p_y->m_p_l_child = p_nd->m_p_next_sibling;
265 p_y->m_p_next_sibling = p_nd->m_p_next_sibling;
267 fix(p_y);