Fixed bug 1668356 by making dtor inline and empty, and changing StrongPtr dtor.
git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@818 7ec92016-0320-0410-acc4-a06ded1c099a
This commit is contained in:
parent
c95d4ccc74
commit
dcf9d7f1d8
1 changed files with 12 additions and 2 deletions
|
@ -561,7 +561,11 @@ protected:
|
||||||
Increment( strong );
|
Increment( strong );
|
||||||
}
|
}
|
||||||
|
|
||||||
~TwoRefCounts( void );
|
/** The destructor does not need to do anything since the call to
|
||||||
|
ZapPointer inside StrongPtr::~StrongPtr will do the cleanup which
|
||||||
|
this dtor would have done.
|
||||||
|
*/
|
||||||
|
inline ~TwoRefCounts( void ) {}
|
||||||
|
|
||||||
inline bool Release( bool strong )
|
inline bool Release( bool strong )
|
||||||
{
|
{
|
||||||
|
@ -657,6 +661,12 @@ protected:
|
||||||
Increment( strong );
|
Increment( strong );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** The destructor does not need to do anything since the call to
|
||||||
|
ZapPointer inside StrongPtr::~StrongPtr will do the cleanup which
|
||||||
|
this dtor would have done.
|
||||||
|
*/
|
||||||
|
inline ~LockableTwoRefCounts( void ) {}
|
||||||
|
|
||||||
inline void Lock( void ) const
|
inline void Lock( void ) const
|
||||||
{
|
{
|
||||||
m_counts->Lock();
|
m_counts->Lock();
|
||||||
|
@ -1009,9 +1019,9 @@ public:
|
||||||
// undefined behavior. Therefore, this must get pointer before
|
// undefined behavior. Therefore, this must get pointer before
|
||||||
// zapping it, and then delete the temp pointer.
|
// zapping it, and then delete the temp pointer.
|
||||||
T * p = GetPointer();
|
T * p = GetPointer();
|
||||||
|
OP::ZapPointer();
|
||||||
if ( p != 0 )
|
if ( p != 0 )
|
||||||
{
|
{
|
||||||
OP::ZapPointer();
|
|
||||||
DP::Delete( p );
|
DP::Delete( p );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue