41#ifdef PB_DS_CLASS_C_DEC
46actual_erase_node(node_pointer p_z)
48 _GLIBCXX_DEBUG_ASSERT(m_size > 0);
50 _GLIBCXX_DEBUG_ONLY(debug_base::erase_existing(PB_DS_V2F(p_z->m_value));)
52 s_node_allocator.deallocate(p_z, 1);
58update_min_max_for_erased_node(node_pointer p_z)
62 m_p_head->m_p_left = m_p_head->m_p_right = m_p_head;
66 if (m_p_head->m_p_left == p_z)
70 m_p_head->m_p_left = it.m_p_nd;
72 else if (m_p_head->m_p_right == p_z)
76 m_p_head->m_p_right = it.m_p_nd;
85 PB_DS_STRUCT_ONLY_ASSERT_VALID((*
this))
86 clear_imp(m_p_head->m_p_parent);
89 _GLIBCXX_DEBUG_ONLY(debug_base::clear();)
90 PB_DS_STRUCT_ONLY_ASSERT_VALID((*this))
96clear_imp(node_pointer p_nd)
101 clear_imp(p_nd->m_p_left);
102 clear_imp(p_nd->m_p_right);
104 s_node_allocator.deallocate(p_nd, 1);