mirror of git://gcc.gnu.org/git/gcc.git
				
				
				
			hashtable (hashtable::m_erase): Rename to erase_node.
2005-10-14 Paolo Carlini <pcarlini@suse.de> * include/tr1/hashtable (hashtable::m_erase): Rename to erase_node. (hashtable::erase(iterator), erase(const_iterator)): Adjust. From-SVN: r105401
This commit is contained in:
		
							parent
							
								
									a93770efeb
								
							
						
					
					
						commit
						76f5f4414f
					
				|  | @ -1,3 +1,8 @@ | ||||||
|  | 2005-10-14  Paolo Carlini  <pcarlini@suse.de> | ||||||
|  | 
 | ||||||
|  | 	* include/tr1/hashtable (hashtable::m_erase): Rename to erase_node. | ||||||
|  | 	(hashtable::erase(iterator), erase(const_iterator)): Adjust. | ||||||
|  | 
 | ||||||
| 2005-10-13  Richard Earnshaw  <richard.earnsahw@arm.com> | 2005-10-13  Richard Earnshaw  <richard.earnsahw@arm.com> | ||||||
| 
 | 
 | ||||||
| 	PR libstdc++/23926 | 	PR libstdc++/23926 | ||||||
|  |  | ||||||
|  | @ -329,7 +329,8 @@ namespace Internal | ||||||
|       {  |       {  | ||||||
| 	hashtable_iterator tmp(*this); | 	hashtable_iterator tmp(*this); | ||||||
| 	this->incr(); | 	this->incr(); | ||||||
| 	return tmp; } | 	return tmp; | ||||||
|  |       } | ||||||
|     }; |     }; | ||||||
| 
 | 
 | ||||||
|   template<typename Value, bool constant_iterators, bool cache> |   template<typename Value, bool constant_iterators, bool cache> | ||||||
|  | @ -374,7 +375,8 @@ namespace Internal | ||||||
|       {  |       {  | ||||||
| 	hashtable_const_iterator tmp(*this); | 	hashtable_const_iterator tmp(*this); | ||||||
| 	this->incr(); | 	this->incr(); | ||||||
| 	return tmp; } | 	return tmp; | ||||||
|  |       } | ||||||
|     }; |     }; | ||||||
| } // namespace Internal | } // namespace Internal | ||||||
| 
 | 
 | ||||||
|  | @ -1169,6 +1171,9 @@ namespace tr1 | ||||||
|       iterator |       iterator | ||||||
|       insert(const value_type&, std::tr1::false_type); |       insert(const value_type&, std::tr1::false_type); | ||||||
| 
 | 
 | ||||||
|  |       void | ||||||
|  |       erase_node(node*, node**); | ||||||
|  | 
 | ||||||
|     public:				// Insert and erase |     public:				// Insert and erase | ||||||
|       Insert_Return_Type |       Insert_Return_Type | ||||||
|       insert(const value_type& v)  |       insert(const value_type& v)  | ||||||
|  | @ -1191,25 +1196,21 @@ namespace tr1 | ||||||
| 
 | 
 | ||||||
|       iterator |       iterator | ||||||
|       erase(iterator); |       erase(iterator); | ||||||
|    | 
 | ||||||
|       const_iterator |       const_iterator | ||||||
|       erase(const_iterator); |       erase(const_iterator); | ||||||
|   | 
 | ||||||
|       size_type |       size_type | ||||||
|       erase(const key_type&); |       erase(const key_type&); | ||||||
| 
 | 
 | ||||||
|       iterator |       iterator | ||||||
|       erase(iterator, iterator); |       erase(iterator, iterator); | ||||||
| 	 | 
 | ||||||
|       const_iterator |       const_iterator | ||||||
|       erase(const_iterator, const_iterator); |       erase(const_iterator, const_iterator); | ||||||
| 
 | 
 | ||||||
|       void |       void | ||||||
|       clear(); |       clear(); | ||||||
|        |  | ||||||
|     private: |  | ||||||
|       // For erase(iterator) and erase(const_iterator). |  | ||||||
|       void m_erase(node*, node**); |  | ||||||
| 
 | 
 | ||||||
|     public: |     public: | ||||||
|       // Set number of buckets to be apropriate for container of n element. |       // Set number of buckets to be apropriate for container of n element. | ||||||
|  | @ -1673,6 +1674,33 @@ namespace tr1 | ||||||
|       return iterator(new_node, m_buckets + n); |       return iterator(new_node, m_buckets + n); | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  |   // For erase(iterator) and erase(const_iterator). | ||||||
|  |   template<typename K, typename V,  | ||||||
|  | 	   typename A, typename Ex, typename Eq, | ||||||
|  | 	   typename H1, typename H2, typename H, typename RP, | ||||||
|  | 	   bool c, bool ci, bool u> | ||||||
|  |     void | ||||||
|  |     hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, ci, u>:: | ||||||
|  |     erase_node(node* p, node** b) | ||||||
|  |     { | ||||||
|  |       node* cur = *b; | ||||||
|  |       if (cur == p) | ||||||
|  | 	*b = cur->m_next; | ||||||
|  |       else | ||||||
|  | 	{ | ||||||
|  | 	  node* next = cur->m_next; | ||||||
|  | 	  while (next != p) | ||||||
|  | 	    { | ||||||
|  | 	      cur = next; | ||||||
|  | 	      next = cur->m_next; | ||||||
|  | 	    } | ||||||
|  | 	  cur->m_next = next->m_next; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  |       m_deallocate_node (p); | ||||||
|  |       --m_element_count; | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|   template<typename K, typename V,  |   template<typename K, typename V,  | ||||||
| 	   typename A, typename Ex, typename Eq, | 	   typename A, typename Ex, typename Eq, | ||||||
| 	   typename H1, typename H2, typename H, typename RP, | 	   typename H1, typename H2, typename H, typename RP, | ||||||
|  | @ -1702,7 +1730,7 @@ namespace tr1 | ||||||
|     { |     { | ||||||
|       iterator result = i; |       iterator result = i; | ||||||
|       ++result; |       ++result; | ||||||
|       m_erase(i.m_cur_node, i.m_cur_bucket); |       erase_node(i.m_cur_node, i.m_cur_bucket); | ||||||
|       return result; |       return result; | ||||||
|     } |     } | ||||||
|    |    | ||||||
|  | @ -1716,7 +1744,7 @@ namespace tr1 | ||||||
|     { |     { | ||||||
|       const_iterator result = i; |       const_iterator result = i; | ||||||
|       ++result; |       ++result; | ||||||
|       m_erase(i.m_cur_node, i.m_cur_bucket); |       erase_node(i.m_cur_node, i.m_cur_bucket); | ||||||
|       return result; |       return result; | ||||||
|     } |     } | ||||||
| 
 | 
 | ||||||
|  | @ -1825,32 +1853,6 @@ namespace tr1 | ||||||
| 	  __throw_exception_again; | 	  __throw_exception_again; | ||||||
| 	} | 	} | ||||||
|     } |     } | ||||||
| 
 |  | ||||||
|   template<typename K, typename V,  |  | ||||||
| 	   typename A, typename Ex, typename Eq, |  | ||||||
| 	   typename H1, typename H2, typename H, typename RP, |  | ||||||
| 	   bool c, bool ci, bool u> |  | ||||||
|     void |  | ||||||
|     hashtable<K, V, A, Ex, Eq, H1, H2, H, RP, c, ci, u>:: |  | ||||||
|     m_erase(node* p, node** b) |  | ||||||
|     { |  | ||||||
|       node* cur = *b; |  | ||||||
|       if (cur == p) |  | ||||||
| 	*b = cur->m_next; |  | ||||||
|       else |  | ||||||
| 	{ |  | ||||||
| 	  node* next = cur->m_next; |  | ||||||
| 	  while (next != p) |  | ||||||
| 	    { |  | ||||||
| 	      cur = next; |  | ||||||
| 	      next = cur->m_next; |  | ||||||
| 	    } |  | ||||||
| 	  cur->m_next = next->m_next; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
|       m_deallocate_node (p); |  | ||||||
|       --m_element_count; |  | ||||||
|     } |  | ||||||
| } | } | ||||||
| }				// Namespace std::tr1 | }				// Namespace std::tr1 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Paolo Carlini
						Paolo Carlini