diff options
Diffstat (limited to 'libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp')
-rw-r--r-- | libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp | 55 |
1 files changed, 19 insertions, 36 deletions
diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp index fb31e2b0d1f..d7998048cfe 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/resize_fn_imps.hpp @@ -50,21 +50,16 @@ PB_DS_CLASS_C_DEC:: do_resize_if_needed() { if (!resize_base::is_resize_needed()) - return (false); - - resize_imp(resize_base::get_new_size( m_num_e, m_num_used_e)); - - return (true); + return false; + resize_imp(resize_base::get_new_size(m_num_e, m_num_used_e)); + return true; } PB_DS_CLASS_T_DEC void PB_DS_CLASS_C_DEC:: -do_resize(size_type size) -{ - resize_imp(resize_base::get_nearest_larger_size( - size)); -} +do_resize(size_type n) +{ resize_imp(resize_base::get_nearest_larger_size(n)); } PB_DS_CLASS_T_DEC inline void @@ -76,13 +71,13 @@ do_resize_if_needed_no_throw() try { - resize_imp(resize_base::get_new_size( m_num_e, m_num_used_e)); + resize_imp(resize_base::get_new_size(m_num_e, m_num_used_e)); } - catch(...) + catch (...) { } _GLIBCXX_DEBUG_ONLY(assert_valid();) - } +} PB_DS_CLASS_T_DEC void @@ -91,23 +86,19 @@ resize_imp(size_type new_size) { #ifdef PB_DS_REGRESSION typename Allocator::group_throw_prob_adjustor adjust(m_num_e); -#endif // #ifdef PB_DS_REGRESSION +#endif if (new_size == m_num_e) return; _GLIBCXX_DEBUG_ONLY(assert_valid();) - - const size_type old_size = m_num_e; - + const size_type old_size = m_num_e; entry_array a_entries_resized = NULL; // Following line might throw an exception. - a_entries_resized = s_entry_allocator.allocate(new_size); ranged_probe_fn_base::notify_resized(new_size); - m_num_e = new_size; for (size_type i = 0; i < m_num_e; ++i) @@ -117,33 +108,24 @@ resize_imp(size_type new_size) { resize_imp(a_entries_resized, old_size); } - catch(...) + catch (...) { erase_all_valid_entries(a_entries_resized, new_size); - m_num_e = old_size; - s_entry_allocator.deallocate(a_entries_resized, new_size); - ranged_probe_fn_base::notify_resized(old_size); - throw; } // At this point no exceptions can be thrown. - _GLIBCXX_DEBUG_ONLY(assert_entry_array_valid(a_entries_resized, traits_base::m_store_extra_indicator);) - Resize_Policy::notify_resized(new_size); - - erase_all_valid_entries(m_a_entries, old_size); - - s_entry_allocator.deallocate(m_a_entries, old_size); - - m_a_entries = a_entries_resized; - + Resize_Policy::notify_resized(new_size); + erase_all_valid_entries(m_entries, old_size); + s_entry_allocator.deallocate(m_entries, old_size); + m_entries = a_entries_resized; _GLIBCXX_DEBUG_ONLY(assert_valid();) - } +} PB_DS_CLASS_T_DEC void @@ -151,8 +133,9 @@ PB_DS_CLASS_C_DEC:: resize_imp(entry_array a_entries_resized, size_type old_size) { for (size_type pos = 0; pos < old_size; ++pos) - if (m_a_entries[pos].m_stat == valid_entry_status) - resize_imp_reassign(m_a_entries + pos, a_entries_resized, traits_base::m_store_extra_indicator); + if (m_entries[pos].m_stat == valid_entry_status) + resize_imp_reassign(m_entries + pos, a_entries_resized, + traits_base::m_store_extra_indicator); } #include <ext/pb_ds/detail/gp_hash_table_map_/resize_no_store_hash_fn_imps.hpp> |