Uses unique_ptr for Threads
[libcds.git] / cds / details / allocator.h
index babe8344744c5a4df9cf685ed43194e3f81941d9..78b1d459cbf471a0eb3d7d0a8f9197a5898860d1 100644 (file)
@@ -1,11 +1,11 @@
 /*
     This file is a part of libcds - Concurrent Data Structures library
 
-    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2016
+    (C) Copyright Maxim Khizhinsky (libcds.dev@gmail.com) 2006-2017
 
     Source code repo: http://github.com/khizmax/libcds/
     Download: http://sourceforge.net/projects/libcds/files/
-    
+
     Redistribution and use in source and binary forms, with or without
     modification, are permitted provided that the following conditions are met:
 
@@ -25,7 +25,7 @@
     SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
     CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
     OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.     
+    OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */
 
 #ifndef CDSLIB_DETAILS_ALLOCATOR_H
@@ -70,20 +70,20 @@ namespace cds {
             template <typename... S>
             value_type *  New( S const&... src )
             {
-                return Construct( allocator_type::allocate(1), src... );
+                return Construct( allocator_type::allocate( 1, nullptr ), src... );
             }
 
             /// Analogue of <tt>operator new T( std::forward<Args>(args)... )</tt> (move semantics)
             template <typename... Args>
             value_type * MoveNew( Args&&... args )
             {
-                return MoveConstruct( allocator_type::allocate(1), std::forward<Args>(args)... );
+                return MoveConstruct( allocator_type::allocate( 1, nullptr ), std::forward<Args>(args)... );
             }
 
             /// Analogue of operator new T[\p nCount ]
             value_type * NewArray( size_t nCount )
             {
-                value_type * p = allocator_type::allocate( nCount );
+                value_type * p = allocator_type::allocate( nCount, nullptr );
                 for ( size_t i = 0; i < nCount; ++i )
                     Construct( p + i );
                 return p;
@@ -96,7 +96,7 @@ namespace cds {
             template <typename S>
             value_type * NewArray( size_t nCount, S const& src )
             {
-                value_type * p = allocator_type::allocate( nCount );
+                value_type * p = allocator_type::allocate( nCount, nullptr );
                 for ( size_t i = 0; i < nCount; ++i )
                     Construct( p + i, src );
                 return p;