mirror of
https://github.com/XRPLF/rippled.git
synced 2025-12-06 17:27:55 +00:00
Make SharedObject members const, the counter mutable
This commit is contained in:
@@ -87,7 +87,7 @@ protected:
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void destroy ()
|
void destroy () const
|
||||||
{
|
{
|
||||||
delete this;
|
delete this;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -85,11 +85,13 @@ protected:
|
|||||||
// the size from the original allocation, which we saved at
|
// the size from the original allocation, which we saved at
|
||||||
// the time of construction.
|
// the time of construction.
|
||||||
//
|
//
|
||||||
void destroy ()
|
void destroy () const
|
||||||
{
|
{
|
||||||
Handler local (BOOST_ASIO_MOVE_CAST(Handler)(m_handler));
|
Handler local (BOOST_ASIO_MOVE_CAST(Handler)(m_handler));
|
||||||
std::size_t const size (m_size);
|
std::size_t const size (m_size);
|
||||||
SharedHandler* const shared (static_cast <SharedHandler*>(this));
|
SharedHandler* const shared (
|
||||||
|
const_cast <SharedHandler*> (
|
||||||
|
static_cast <SharedHandler const*>(this)));
|
||||||
shared->~SharedHandler ();
|
shared->~SharedHandler ();
|
||||||
boost_asio_handler_alloc_helpers::
|
boost_asio_handler_alloc_helpers::
|
||||||
deallocate <Handler> (shared, size, local);
|
deallocate <Handler> (shared, size, local);
|
||||||
@@ -109,7 +111,7 @@ protected:
|
|||||||
|
|
||||||
protected:
|
protected:
|
||||||
std::size_t const m_size;
|
std::size_t const m_size;
|
||||||
Handler m_handler;
|
Handler mutable m_handler;
|
||||||
};
|
};
|
||||||
|
|
||||||
//--------------------------------------------------------------------------
|
//--------------------------------------------------------------------------
|
||||||
|
|||||||
@@ -65,7 +65,7 @@ public:
|
|||||||
This is done automatically by the smart pointer, but is public just
|
This is done automatically by the smart pointer, but is public just
|
||||||
in case it's needed for nefarious purposes.
|
in case it's needed for nefarious purposes.
|
||||||
*/
|
*/
|
||||||
inline void incReferenceCount() noexcept
|
inline void incReferenceCount() const noexcept
|
||||||
{
|
{
|
||||||
++refCount;
|
++refCount;
|
||||||
}
|
}
|
||||||
@@ -79,7 +79,7 @@ public:
|
|||||||
The return value indicates if the reference count dropped to zero,
|
The return value indicates if the reference count dropped to zero,
|
||||||
so callers who know the derived type can use the ContainerDeletePolicy.
|
so callers who know the derived type can use the ContainerDeletePolicy.
|
||||||
*/
|
*/
|
||||||
void decReferenceCount ()
|
void decReferenceCount () const
|
||||||
{
|
{
|
||||||
bassert (getReferenceCount() > 0);
|
bassert (getReferenceCount() > 0);
|
||||||
if (--refCount == 0)
|
if (--refCount == 0)
|
||||||
@@ -109,7 +109,7 @@ protected:
|
|||||||
/** Destroy the object.
|
/** Destroy the object.
|
||||||
Derived classes can override this for different behaviors.
|
Derived classes can override this for different behaviors.
|
||||||
*/
|
*/
|
||||||
virtual void destroy ()
|
virtual void destroy () const
|
||||||
{
|
{
|
||||||
delete this;
|
delete this;
|
||||||
}
|
}
|
||||||
@@ -124,7 +124,7 @@ protected:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
Atomic <int> refCount;
|
Atomic <int> mutable refCount;
|
||||||
};
|
};
|
||||||
|
|
||||||
//==============================================================================
|
//==============================================================================
|
||||||
@@ -184,7 +184,7 @@ protected:
|
|||||||
bassert (getReferenceCount() == 0);
|
bassert (getReferenceCount() == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual void destroy ()
|
virtual void destroy () const
|
||||||
{
|
{
|
||||||
delete this;
|
delete this;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user