From: <ric...@us...> - 2011-09-20 17:51:52
|
Revision: 1105 http://loki-lib.svn.sourceforge.net/loki-lib/?rev=1105&view=rev Author: rich_sposato Date: 2011-09-20 17:51:46 +0000 (Tue, 20 Sep 2011) Log Message: ----------- Added ability for StrongPtr to handle arrays. Modified Paths: -------------- trunk/src/StrongPtr.cpp Modified: trunk/src/StrongPtr.cpp =================================================================== --- trunk/src/StrongPtr.cpp 2011-09-20 17:51:26 UTC (rev 1104) +++ trunk/src/StrongPtr.cpp 2011-09-20 17:51:46 UTC (rev 1105) @@ -15,6 +15,9 @@ #include <loki/StrongPtr.h> +#include <stdexcept> +#include <string> + #include <memory.h> #ifdef DO_EXTRA_LOKI_TESTS #include <cassert> @@ -38,6 +41,45 @@ // ---------------------------------------------------------------------------- +void DeleteArrayBase::Swap( DeleteArrayBase & rhs ) +{ + assert( NULL != this ); + + const size_t temp = m_itemCount; + m_itemCount = rhs.m_itemCount; + rhs.m_itemCount = temp; +} + +// ---------------------------------------------------------------------------- + +void DeleteArrayBase::OnInit( const void * p ) const +{ + assert( NULL != this ); + if ( NULL == p ) + { + assert( 0 == m_itemCount ); + } + else + { + assert( 0 < m_itemCount ); + } +} + +// ---------------------------------------------------------------------------- + +void DeleteArrayBase::OnCheckRange( size_t index ) const +{ + assert( NULL != this ); + + if ( index < m_itemCount ) + return; + + const ::std::string message( "index out of range in ::Loki::DeleteArrayBase::OnCheckRange" ); + throw ::std::out_of_range( message ); +} + +// ---------------------------------------------------------------------------- + OneOwnerRefCountInfo::OneOwnerRefCountInfo( SingleOwnerRefCount * ptr ) : m_pointer( NULL ) , m_strongPtr( ptr ) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |