|
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.
|