X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=libstdc%2B%2B-v3%2Finclude%2Fext%2Fpb_ds%2Fdetail%2Fgp_hash_table_map_%2Ferase_no_store_hash_fn_imps.hpp;h=8613c8b6e3edaf92c069c0d117aeb64f9cf8ace6;hb=7adcbafe45f8001b698967defe682687b52c0007;hp=eb2bf9899fdc30bccbed1cbfc102c721f505390f;hpb=4569a895f52a80e8c7adf16c2032cb87d91b6ea1;p=thirdparty%2Fgcc.git diff --git a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp index eb2bf9899fdc..8613c8b6e3ed 100644 --- a/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp +++ b/libstdc++-v3/include/ext/pb_ds/detail/gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp @@ -1,11 +1,11 @@ // -*- C++ -*- -// Copyright (C) 2005, 2006 Free Software Foundation, Inc. +// Copyright (C) 2005-2022 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 // of the GNU General Public License as published by the Free Software -// Foundation; either version 2, or (at your option) any later +// Foundation; either version 3, or (at your option) any later // version. // This library is distributed in the hope that it will be useful, but @@ -13,20 +13,14 @@ // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU // General Public License for more details. -// You should have received a copy of the GNU General Public License -// along with this library; see the file COPYING. If not, write to -// the Free Software Foundation, 59 Temple Place - Suite 330, Boston, -// MA 02111-1307, USA. +// Under Section 7 of GPL version 3, you are granted additional +// permissions described in the GCC Runtime Library Exception, version +// 3.1, as published by the Free Software Foundation. -// As a special exception, you may use this file as part of a free -// software library without restriction. Specifically, if other files -// instantiate templates or use macros or inline functions from this -// file, or you compile this file and link it with other files to -// produce an executable, this file does not by itself cause the -// resulting executable to be covered by the GNU General Public -// License. This exception does not however invalidate any other -// reasons why the executable file might be covered by the GNU General -// Public License. +// You should have received a copy of the GNU General Public License and +// a copy of the GCC Runtime Library Exception along with this program; +// see the files COPYING3 and COPYING.RUNTIME respectively. If not, see +// . // Copyright (C) 2004 Ami Tavory and Vladimir Dreizin, IBM-HRL. @@ -40,68 +34,54 @@ // warranty. /** - * @file erase_no_store_hash_fn_imps.hpp - * Contains implementations of gp_ht_map_'s erase related functions, when the hash - * value is not stored. + * @file gp_hash_table_map_/erase_no_store_hash_fn_imps.hpp + * Contains implementations of gp_ht_map_'s erase related functions, + * when the hash value is not stored. */ +#ifdef PB_DS_CLASS_C_DEC + PB_DS_CLASS_T_DEC inline bool PB_DS_CLASS_C_DEC:: -erase_imp(const_key_reference r_key, false_type) +erase_imp(key_const_reference r_key, false_type) { - PB_DS_DBG_ONLY(PB_DS_CLASS_C_DEC::assert_valid();) - - size_type hash = ranged_probe_fn_base::operator()(r_key); - + PB_DS_ASSERT_VALID((*this)) + size_type hash = ranged_probe_fn_base::operator()(r_key); size_type i; - resize_base::notify_erase_search_start(); for (i = 0; i < m_num_e; ++i) { - const size_type pos = - ranged_probe_fn_base::operator()( r_key, hash, i); - - entry* const p_e = m_a_entries + pos; - + const size_type pos = ranged_probe_fn_base::operator()(r_key, hash, i); + entry* const p_e = m_entries + pos; switch(p_e->m_stat) { case empty_entry_status: { resize_base::notify_erase_search_end(); - - PB_DS_DBG_ONLY(map_debug_base::check_key_does_not_exist( - r_key)); - - return (false); + PB_DS_CHECK_KEY_DOES_NOT_EXIST(r_key) + return false; } break; case valid_entry_status: - if (hash_eq_fn_base::operator()( - PB_DS_V2F(p_e->m_value), - r_key)) + if (hash_eq_fn_base::operator()(PB_DS_V2F(p_e->m_value), r_key)) { resize_base::notify_erase_search_end(); - erase_entry(p_e); - do_resize_if_needed_no_throw(); - - return (true); + return true; } break; case erased_entry_status: break; default: - PB_DS_DBG_ASSERT(0); + _GLIBCXX_DEBUG_ASSERT(0); }; - resize_base::notify_erase_search_collision(); } - resize_base::notify_erase_search_end(); - - return (false); + return false; } +#endif