diff options
author | François Dumont <francois.cppdevs@free.fr> | 2011-05-07 15:45:24 +0200 |
---|---|---|
committer | François Dumont <fdumont@gcc.gnu.org> | 2011-05-07 13:45:24 +0000 |
commit | f5886803ed0715d8bf874b3fd39d7d0763c2fb75 (patch) | |
tree | f99e9ee2432838fa7b4ac3795fc7f757801483ee /libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_ | |
parent | 6f4d39bb3f20a2bdf5e8767596557030241f9219 (diff) | |
download | gcc-f5886803ed0715d8bf874b3fd39d7d0763c2fb75.tar.gz |
macro.h (_GLIBCXX_DEBUG_VERIFY_AT): New.
2011-05-07 François Dumont <francois.cppdevs@free.fr>
* include/debug/macro.h (_GLIBCXX_DEBUG_VERIFY_AT): New.
(_GLICXX_DEBUG_VERIFY): Use latter.
* include/ext/pb_ds/detail/resize_policy/
hash_load_check_resize_trigger_imp.hpp: Emit assertion on the line
containing the original assert call.
* include/ext/pb_ds/detail/binomial_heap_base_/erase_fn_imps.hpp,
find_fn_imps.hpp, insert_fn_imps.hpp, binomial_heap_base_.hpp,
constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
split_join_fn_imps.hpp: Likewise.
* include/ext/pb_ds/detail/cc_hash_table_map_/
erase_store_hash_fn_imps.hpp, insert_no_store_hash_fn_imps.hpp,
find_fn_imps.hpp, insert_store_hash_fn_imps.hpp, debug_fn_imps.hpp,
debug_no_store_hash_fn_imps.hpp, cc_ht_map_.hpp, resize_fn_imps.hpp,
constructor_destructor_fn_imps.hpp, debug_store_hash_fn_imps.hpp,
erase_no_store_hash_fn_imps.hpp: Likewise.
* include/ext/pb_ds/detail/pat_trie_/find_fn_imps.hpp,
insert_join_fn_imps.hpp, pat_trie_/head.hpp, debug_fn_imps.hpp,
constructors_destructor_fn_imps.hpp, pat_trie_.hpp, split_fn_imps.hpp,
leaf.hpp, erase_fn_imps.hpp, node_base.hpp, internal_node.hpp:
Likewise.
* include/ext/pb_ds/detail/bin_search_tree_/find_fn_imps.hpp,
r_erase_fn_imps.hpp, constructors_destructor_fn_imps.hpp,
debug_fn_imps.hpp, rotate_fn_imps.hpp, erase_fn_imps.hpp,
bin_search_tree_.hpp, insert_fn_imps.hpp, split_join_fn_imps.hpp:
Likewise.
* include/ext/pb_ds/detail/gp_hash_table_map_/
erase_store_hash_fn_imps.hpp, insert_no_store_hash_fn_imps.hpp,
find_fn_imps.hpp, gp_ht_map_.hpp, insert_store_hash_fn_imps.hpp,
debug_fn_imps.hpp, erase_fn_imps.hpp, debug_no_store_hash_fn_imps.hpp,
resize_fn_imps.hpp, constructor_destructor_fn_imps.hpp,
debug_store_hash_fn_imps.hpp, erase_no_store_hash_fn_imps.hpp:
Likewise.
* include/ext/pb_ds/detail/binary_heap_/find_fn_imps.hpp,
constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
erase_fn_imps.hpp, insert_fn_imps.hpp, binary_heap_.hpp,
resize_policy.hpp, split_join_fn_imps.hpp: Likewise.
* include/ext/pb_ds/detail/pairing_heap_/erase_fn_imps.hpp,
find_fn_imps.hpp, insert_fn_imps.hpp,
constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
pairing_heap_.hpp, split_join_fn_imps.hpp: Likewise.
* include/ext/pb_ds/detail/binomial_heap_/
constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
binomial_heap_.hpp: Likewise.
* include/ext/pb_ds/detail/left_child_next_sibling_heap_/
erase_fn_imps.hpp, left_child_next_sibling_heap_.hpp,
constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp: Likewise.
* include/ext/pb_ds/detail/thin_heap_/erase_fn_imps.hpp,
find_fn_imps.hpp, thin_heap_.hpp, insert_fn_imps.hpp,
constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
split_join_fn_imps.hpp: Likewise.
* include/ext/pb_ds/detail/ov_tree_map_/erase_fn_imps.hpp,
ov_tree_map_.hpp, constructors_destructor_fn_imps.hpp,
debug_fn_imps.hpp, split_join_fn_imps.hpp, info_fn_imps.hpp: Likewise.
* include/ext/pb_ds/detail/debug_map_base.hpp: Likewise.
* include/ext/pb_ds/detail/splay_tree_/erase_fn_imps.hpp,
find_fn_imps.hpp, insert_fn_imps.hpp,
constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp,
splay_fn_imps.hpp, split_join_fn_imps.hpp, splay_tree_.hpp: Likewise.
* include/ext/pb_ds/detail/list_update_map_/erase_fn_imps.hpp,
find_fn_imps.hpp, lu_map_.hpp, constructor_destructor_fn_imps.hpp,
insert_fn_imps.hpp, debug_fn_imps.hpp: Likewise.
* include/ext/pb_ds/detail/rc_binomial_heap_/erase_fn_imps.hpp,
rc_binomial_heap_.hpp, insert_fn_imps.hpp,
constructors_destructor_fn_imps.hpp, debug_fn_imps.hpp, rc.hpp,
split_join_fn_imps.hpp: Likewise.
* include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp,
insert_fn_imps.hpp, constructors_destructor_fn_imps.hpp,
debug_fn_imps.hpp, rb_tree_.hpp, split_join_fn_imps.hpp: Likewise.
* include/ext/pb_ds/hash_policy.hpp: Likewise.
From-SVN: r173529
Diffstat (limited to 'libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_')
6 files changed, 80 insertions, 68 deletions
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp index 1abfe21dea6..19adc8edaad 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2005, 2006, 2009 Free Software Foundation, Inc. +// Copyright (C) 2005, 2006, 2009, 2011 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -53,7 +53,7 @@ PB_DS_CLASS_C_DEC:: PB_DS_CLASS_NAME() { initialize(); - _GLIBCXX_DEBUG_ONLY(assert_valid();) + PB_DS_ASSERT_VALID((*this)) } PB_DS_CLASS_T_DEC @@ -62,7 +62,7 @@ PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn) : base_type(r_cmp_fn) { initialize(); - _GLIBCXX_DEBUG_ONLY(assert_valid();) + PB_DS_ASSERT_VALID((*this)) } PB_DS_CLASS_T_DEC @@ -71,7 +71,7 @@ PB_DS_CLASS_NAME(const Cmp_Fn& r_cmp_fn, const node_update& r_node_update) : base_type(r_cmp_fn, r_node_update) { initialize(); - _GLIBCXX_DEBUG_ONLY(assert_valid();) + PB_DS_ASSERT_VALID((*this)) } PB_DS_CLASS_T_DEC @@ -80,7 +80,7 @@ PB_DS_CLASS_NAME(const PB_DS_CLASS_C_DEC& other) : base_type(other) { initialize(); - _GLIBCXX_DEBUG_ONLY(assert_valid();) + PB_DS_ASSERT_VALID((*this)) } PB_DS_CLASS_T_DEC @@ -88,9 +88,9 @@ void PB_DS_CLASS_C_DEC:: swap(PB_DS_CLASS_C_DEC& other) { - _GLIBCXX_DEBUG_ONLY(assert_valid();) + PB_DS_ASSERT_VALID((*this)) base_type::swap(other); - _GLIBCXX_DEBUG_ONLY(assert_valid();) + PB_DS_ASSERT_VALID((*this)) } PB_DS_CLASS_T_DEC diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp index ca13ef873a0..fe90b0a6a3f 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/debug_fn_imps.hpp @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2005, 2006, 2009, 2010 Free Software Foundation, Inc. +// Copyright (C) 2005, 2006, 2009, 2010, 2011 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -43,34 +43,37 @@ PB_DS_CLASS_T_DEC typename PB_DS_CLASS_C_DEC::size_type PB_DS_CLASS_C_DEC:: -assert_node_consistent(const node_pointer p_nd) const +assert_node_consistent(const node_pointer p_nd, const char* __file, + int __line) const { if (p_nd == 0) return 1; - const size_type l_height = assert_node_consistent(p_nd->m_p_left); - const size_type r_height = assert_node_consistent(p_nd->m_p_right); + const size_type l_height = + assert_node_consistent(p_nd->m_p_left, __file, __line); + const size_type r_height = + assert_node_consistent(p_nd->m_p_right, __file, __line); if (p_nd->m_red) { - _GLIBCXX_DEBUG_ASSERT(is_effectively_black(p_nd->m_p_left)); - _GLIBCXX_DEBUG_ASSERT(is_effectively_black(p_nd->m_p_right)); + PB_DS_DEBUG_VERIFY(is_effectively_black(p_nd->m_p_left)); + PB_DS_DEBUG_VERIFY(is_effectively_black(p_nd->m_p_right)); } - _GLIBCXX_DEBUG_ASSERT(l_height == r_height); + PB_DS_DEBUG_VERIFY(l_height == r_height); return (p_nd->m_red ? 0 : 1) + l_height; } PB_DS_CLASS_T_DEC void PB_DS_CLASS_C_DEC:: -assert_valid() const +assert_valid(const char* __file, int __line) const { - base_type::assert_valid(); + base_type::assert_valid(__file, __line); const node_pointer p_head = base_type::m_p_head; - _GLIBCXX_DEBUG_ASSERT(p_head->m_red); + PB_DS_DEBUG_VERIFY(p_head->m_red); if (p_head->m_p_parent != 0) { - _GLIBCXX_DEBUG_ASSERT(!p_head->m_p_parent->m_red); - assert_node_consistent(p_head->m_p_parent); + PB_DS_DEBUG_VERIFY(!p_head->m_p_parent->m_red); + assert_node_consistent(p_head->m_p_parent, __file, __line); } } diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp index e097bc4f96f..5a335a6dd47 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2005, 2006, 2009, 2010 Free Software Foundation, Inc. +// Copyright (C) 2005, 2006, 2009, 2010, 2011 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -55,14 +55,14 @@ inline typename PB_DS_CLASS_C_DEC::iterator PB_DS_CLASS_C_DEC:: erase(iterator it) { - _GLIBCXX_DEBUG_ONLY(assert_valid()); + PB_DS_ASSERT_VALID((*this)) if (it == base_type::end()) return it; iterator ret_it = it; ++ret_it; erase_node(it.m_p_nd); - _GLIBCXX_DEBUG_ONLY(assert_valid()); + PB_DS_ASSERT_VALID((*this)) return ret_it; } @@ -71,14 +71,14 @@ inline typename PB_DS_CLASS_C_DEC::reverse_iterator PB_DS_CLASS_C_DEC:: erase(reverse_iterator it) { - _GLIBCXX_DEBUG_ONLY(assert_valid()); + PB_DS_ASSERT_VALID((*this)) if (it.m_p_nd == base_type::m_p_head) return it; reverse_iterator ret_it = it; ++ret_it; erase_node(it.m_p_nd); - _GLIBCXX_DEBUG_ONLY(assert_valid()); + PB_DS_ASSERT_VALID((*this)) return ret_it; } @@ -88,7 +88,7 @@ inline typename PB_DS_CLASS_C_DEC::size_type PB_DS_CLASS_C_DEC:: erase_if(Pred pred) { - _GLIBCXX_DEBUG_ONLY(assert_valid();) + PB_DS_ASSERT_VALID((*this)) size_type num_ersd = 0; iterator it = base_type::begin(); while (it != base_type::end()) @@ -102,7 +102,7 @@ erase_if(Pred pred) ++it; } - _GLIBCXX_DEBUG_ONLY(assert_valid();) + PB_DS_ASSERT_VALID((*this)) return num_ersd; } @@ -113,7 +113,7 @@ erase_node(node_pointer p_nd) { remove_node(p_nd); base_type::actual_erase_node(p_nd); - _GLIBCXX_DEBUG_ONLY(assert_valid()); + PB_DS_ASSERT_VALID((*this)) } PB_DS_CLASS_T_DEC diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp index 632deab7038..55bd4ed1f0d 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2005, 2006, 2009, 2010 Free Software Foundation, Inc. +// Copyright (C) 2005, 2006, 2009, 2010, 2011 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -43,16 +43,16 @@ inline std::pair<typename PB_DS_CLASS_C_DEC::point_iterator, bool> PB_DS_CLASS_C_DEC:: insert(const_reference r_value) { - _GLIBCXX_DEBUG_ONLY(assert_valid();) + PB_DS_ASSERT_VALID((*this)) std::pair<point_iterator, bool> ins_pair = base_type::insert_leaf(r_value); if (ins_pair.second == true) { ins_pair.first.m_p_nd->m_red = true; - _GLIBCXX_DEBUG_ONLY(this->structure_only_assert_valid();) + PB_DS_STRUCT_ONLY_ASSERT_VALID((*this)) insert_fixup(ins_pair.first.m_p_nd); } - _GLIBCXX_DEBUG_ONLY(assert_valid();) + PB_DS_ASSERT_VALID((*this)) return ins_pair; } diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp index 1d84a8e0d60..92ea7d65a75 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/rb_tree_.hpp @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2005, 2006, 2009, 2010 Free Software Foundation, Inc. +// Copyright (C) 2005, 2006, 2009, 2010, 2011 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -167,17 +167,17 @@ namespace __gnu_pbds operator[](const_key_reference r_key) { #ifdef PB_DS_DATA_TRUE_INDICATOR - _GLIBCXX_DEBUG_ONLY(assert_valid();) + _GLIBCXX_DEBUG_ONLY(assert_valid(__FILE__, __LINE__);) std::pair<point_iterator, bool> ins_pair = base_type::insert_leaf(value_type(r_key, mapped_type())); if (ins_pair.second == true) { ins_pair.first.m_p_nd->m_red = true; - _GLIBCXX_DEBUG_ONLY(this->structure_only_assert_valid();) + _GLIBCXX_DEBUG_ONLY(this->structure_only_assert_valid(__FILE__, __LINE__);) insert_fixup(ins_pair.first.m_p_nd); } - _GLIBCXX_DEBUG_ONLY(assert_valid();) + _GLIBCXX_DEBUG_ONLY(assert_valid(__FILE__, __LINE__);) return ins_pair.first.m_p_nd->m_value.second; #else insert(r_key); @@ -210,10 +210,11 @@ namespace __gnu_pbds #ifdef _GLIBCXX_DEBUG void - assert_valid() const; + assert_valid(const char* file, int line) const; size_type - assert_node_consistent(const node_pointer) const; + assert_node_consistent(const node_pointer, const char* file, + int line) const; #endif inline static bool @@ -259,6 +260,18 @@ namespace __gnu_pbds split_at_node(node_pointer, PB_DS_CLASS_C_DEC&); }; +#define PB_DS_ASSERT_VALID(X) \ + _GLIBCXX_DEBUG_ONLY(X.assert_valid(__FILE__, __LINE__);) + +#define PB_DS_STRUCT_ONLY_ASSERT_VALID(X) \ + _GLIBCXX_DEBUG_ONLY(X.structure_only_assert_valid(__FILE__, __LINE__);) + +#define PB_DS_DEBUG_VERIFY(_Cond) \ + _GLIBCXX_DEBUG_VERIFY_AT(_Cond, \ + _M_message(#_Cond" assertion from %1;:%2;") \ + ._M_string(__FILE__)._M_integer(__LINE__) \ + ,__file,__line) + #include <ext/pb_ds/detail/rb_tree_map_/constructors_destructor_fn_imps.hpp> #include <ext/pb_ds/detail/rb_tree_map_/insert_fn_imps.hpp> #include <ext/pb_ds/detail/rb_tree_map_/erase_fn_imps.hpp> @@ -266,6 +279,9 @@ namespace __gnu_pbds #include <ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp> #include <ext/pb_ds/detail/rb_tree_map_/info_fn_imps.hpp> +#undef PB_DS_DEBUG_VERIFY +#undef PB_DS_STRUCT_ONLY_ASSERT_VALID +#undef PB_DS_ASSERT_VALID #undef PB_DS_CLASS_T_DEC #undef PB_DS_CLASS_C_DEC #undef PB_DS_CLASS_NAME diff --git a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp index e3cd399e873..a0d079b142f 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/rb_tree_map_/split_join_fn_imps.hpp @@ -1,6 +1,6 @@ // -*- C++ -*- -// Copyright (C) 2005, 2006, 2009, 2010 Free Software Foundation, Inc. +// Copyright (C) 2005, 2006, 2009, 2010, 2011 Free Software Foundation, Inc. // // This file is part of the GNU ISO C++ Library. This library is free // software; you can redistribute it and/or modify it under the terms @@ -43,23 +43,20 @@ inline void PB_DS_CLASS_C_DEC:: join(PB_DS_CLASS_C_DEC& other) { - _GLIBCXX_DEBUG_ONLY(assert_valid();) - _GLIBCXX_DEBUG_ONLY(other.assert_valid();) - _GLIBCXX_DEBUG_ONLY(other.base_type::assert_valid();) + PB_DS_ASSERT_VALID((*this)) + PB_DS_ASSERT_VALID(other) if (base_type::join_prep(other) == false) { - _GLIBCXX_DEBUG_ONLY(assert_valid();) - _GLIBCXX_DEBUG_ONLY(other.assert_valid();) + PB_DS_ASSERT_VALID((*this)) + PB_DS_ASSERT_VALID(other) return; } const node_pointer p_x = other.split_min(); join_imp(p_x, other.m_p_head->m_p_parent); base_type::join_finish(other); - _GLIBCXX_DEBUG_ONLY(assert_valid();) - _GLIBCXX_DEBUG_ONLY(base_type::assert_valid();) - _GLIBCXX_DEBUG_ONLY(other.assert_valid();) - _GLIBCXX_DEBUG_ONLY(other.base_type::assert_valid();) + PB_DS_ASSERT_VALID((*this)) + PB_DS_ASSERT_VALID(other) } PB_DS_CLASS_T_DEC @@ -122,10 +119,10 @@ join_imp(node_pointer p_x, node_pointer p_r) p_x->m_red = true; base_type::initialize_min_max(); - _GLIBCXX_DEBUG_ONLY(base_type::structure_only_assert_valid();) + PB_DS_STRUCT_ONLY_ASSERT_VALID((*this)) base_type::update_to_top(p_x, (node_update* )this); insert_fixup(p_x); - _GLIBCXX_DEBUG_ONLY(base_type::structure_only_assert_valid()); + PB_DS_STRUCT_ONLY_ASSERT_VALID((*this)) } PB_DS_CLASS_T_DEC @@ -237,21 +234,18 @@ void PB_DS_CLASS_C_DEC:: split(const_key_reference r_key, PB_DS_CLASS_C_DEC& other) { - _GLIBCXX_DEBUG_ONLY(assert_valid()); - _GLIBCXX_DEBUG_ONLY(base_type::assert_valid();) + PB_DS_ASSERT_VALID((*this)) + PB_DS_ASSERT_VALID(other) - _GLIBCXX_DEBUG_ONLY(other.assert_valid()); - _GLIBCXX_DEBUG_ONLY(other.base_type::assert_valid();) - - if (base_type::split_prep(r_key, other) == false) - { - _GLIBCXX_DEBUG_ONLY(assert_valid()); - _GLIBCXX_DEBUG_ONLY(other.assert_valid()); - return; - } + if (base_type::split_prep(r_key, other) == false) + { + PB_DS_ASSERT_VALID((*this)) + PB_DS_ASSERT_VALID(other) + return; + } - _GLIBCXX_DEBUG_ONLY(base_type::structure_only_assert_valid();) - _GLIBCXX_DEBUG_ONLY(other.base_type::structure_only_assert_valid();) + PB_DS_STRUCT_ONLY_ASSERT_VALID((*this)) + PB_DS_STRUCT_ONLY_ASSERT_VALID(other) node_pointer p_nd = upper_bound(r_key).m_p_nd; do { @@ -259,15 +253,14 @@ split(const_key_reference r_key, PB_DS_CLASS_C_DEC& other) if (Cmp_Fn::operator()(r_key, PB_DS_V2F(p_nd->m_value))) split_at_node(p_nd, other); - _GLIBCXX_DEBUG_ONLY(base_type::structure_only_assert_valid();) - _GLIBCXX_DEBUG_ONLY(other.base_type::structure_only_assert_valid();) + PB_DS_STRUCT_ONLY_ASSERT_VALID((*this)) + PB_DS_STRUCT_ONLY_ASSERT_VALID(other) p_nd = p_next_nd; } while (p_nd != base_type::m_p_head); base_type::split_finish(other); - _GLIBCXX_DEBUG_ONLY(assert_valid();) - _GLIBCXX_DEBUG_ONLY(assert_valid();) + PB_DS_ASSERT_VALID((*this)) } PB_DS_CLASS_T_DEC @@ -307,7 +300,7 @@ split_at_node(node_pointer p_nd, PB_DS_CLASS_C_DEC& other) base_type::initialize_min_max(); other.join_imp(p_nd, p_r); - _GLIBCXX_DEBUG_ONLY(base_type::structure_only_assert_valid()); - _GLIBCXX_DEBUG_ONLY(other.base_type::structure_only_assert_valid()); + PB_DS_STRUCT_ONLY_ASSERT_VALID((*this)) + PB_DS_STRUCT_ONLY_ASSERT_VALID(other) } |