mirror of
https://github.com/boostorg/smart_ptr.git
synced 2025-10-27 22:01:45 +01:00
quick_allocator supports dealloc(nullptr)
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
// static void* alloc();
|
||||
//
|
||||
// // deallocate the memory returned from alloc()
|
||||
// // if p == 0, no effect
|
||||
// static void dealloc( void* p );
|
||||
//
|
||||
// // if n == sizeof(T), returns alloc()
|
||||
@@ -22,6 +23,7 @@
|
||||
// static void* alloc( std::size_t n );
|
||||
//
|
||||
// // deallocate the memory returned from alloc( n )
|
||||
// // if p == 0, no effect
|
||||
// static void dealloc( void* p, std::size_t n );
|
||||
// };
|
||||
|
||||
@@ -53,6 +55,10 @@ int main()
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p1 ), 0xCC );
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p2 ), 0xDD );
|
||||
|
||||
quick_allocator<X>::dealloc( 0 );
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p1 ), 0xCC );
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p2 ), 0xDD );
|
||||
|
||||
quick_allocator<X>::dealloc( p1 );
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p2 ), 0xDD );
|
||||
|
||||
@@ -70,12 +76,22 @@ int main()
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p1 ), 0xCC );
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p2 ), 0xDD );
|
||||
|
||||
quick_allocator<X>::dealloc( 0, sizeof(X) );
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p1 ), 0xCC );
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p2 ), 0xDD );
|
||||
|
||||
quick_allocator<X>::dealloc( p1, sizeof(X) );
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p2 ), 0xDD );
|
||||
|
||||
quick_allocator<X>::dealloc( 0, sizeof(Y) );
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p2 ), 0xDD );
|
||||
|
||||
quick_allocator<X>::dealloc( p2, sizeof(Y) );
|
||||
}
|
||||
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p ), 0xAA );
|
||||
quick_allocator<Y>::dealloc( 0 );
|
||||
|
||||
BOOST_TEST_EQ( *static_cast<unsigned char*>( p ), 0xAA );
|
||||
quick_allocator<Y>::dealloc( p );
|
||||
|
||||
|
||||
Reference in New Issue
Block a user