Removed redundant checking
authorkhizmax <libcds.dev@gmail.com>
Tue, 9 Feb 2016 20:30:24 +0000 (23:30 +0300)
committerkhizmax <libcds.dev@gmail.com>
Tue, 9 Feb 2016 20:30:24 +0000 (23:30 +0300)
cds/intrusive/lazy_list_nogc.h
cds/intrusive/michael_list_nogc.h

index e43bd3f5e00cb322da6f7299314cadaca2a022d7..c2434d224802d55f769c40bd3b30577ff584b286 100644 (file)
@@ -201,6 +201,7 @@ namespace cds { namespace intrusive {
 
         void link_node( node_type * pNode, node_type * pPred, node_type * pCur )
         {
+            link_checker::is_empty( pNode );
             assert( pPred->m_pNext.load(memory_model::memory_order_relaxed) == pCur );
 
             pNode->m_pNext.store( pCur, memory_model::memory_order_release );
@@ -558,6 +559,7 @@ namespace cds { namespace intrusive {
             while ( pHead != &m_Tail ) {
                 node_type * p = pHead->m_pNext.load(memory_model::memory_order_relaxed);
                 dispose_node( pHead, disp );
+                --m_ItemCounter;
                 pHead = p;
             }
         }
@@ -612,7 +614,6 @@ namespace cds { namespace intrusive {
 
         bool insert_at( node_type * pHead, value_type& val )
         {
-            link_checker::is_empty( node_traits::to_node_ptr( val ) );
             position pos;
             key_comparator pred;
 
@@ -665,8 +666,6 @@ namespace cds { namespace intrusive {
                             if ( !bAllowInsert )
                                 return std::make_pair( end(), false );
 
-                            link_checker::is_empty( node_traits::to_node_ptr( val ) );
-
                             link_node( node_traits::to_node_ptr( val ), pos.pPred, pos.pCur );
                             func( true, val, val );
                             ++m_ItemCounter;
index e8ba4dd07f4b8e36ecf616b730f38b3ec34e962e..9a539b510ef3a58844e656d504033cb46f41474e 100644 (file)
@@ -530,7 +530,6 @@ namespace cds { namespace intrusive {
 
         bool insert_at( atomic_node_ptr& refHead, value_type& val )
         {
-            link_checker::is_empty( node_traits::to_node_ptr( val ) );
             position pos;
 
             while ( true ) {
@@ -567,8 +566,6 @@ namespace cds { namespace intrusive {
                     if ( !bAllowInsert )
                         return std::make_pair( end(), false );
 
-                    link_checker::is_empty( node_traits::to_node_ptr( val ) );
-
                     if ( link_node( node_traits::to_node_ptr( val ), pos ) ) {
                         ++m_ItemCounter;
                         func( true, val , val );