diff options
author | Noel Grandin <noel@peralex.com> | 2014-07-18 16:21:04 +0200 |
---|---|---|
committer | Noel Grandin <noel@peralex.com> | 2014-07-21 08:01:03 +0200 |
commit | 43a37822dc82abd16e0d99b5bbe21ac469c04ddd (patch) | |
tree | fda2b8f92ad0a7df4646e3ab3d46ed04af3a23d0 /include | |
parent | d694339bc87b1e8966bc536b042723a96b93e408 (diff) |
convert ORefVector to use salhelp::SimpleReferenceObject
instead of hand-rolled code
Change-Id: I56e991c70334cb201a460ea8679be70808451a86
Diffstat (limited to 'include')
-rw-r--r-- | include/connectivity/CommonTools.hxx | 32 |
1 files changed, 6 insertions, 26 deletions
diff --git a/include/connectivity/CommonTools.hxx b/include/connectivity/CommonTools.hxx index d09990531aa9..1ef5908bc23e 100644 --- a/include/connectivity/CommonTools.hxx +++ b/include/connectivity/CommonTools.hxx @@ -37,6 +37,7 @@ #include <com/sun/star/uno/XComponentContext.hpp> #include <connectivity/dbtoolsdllapi.hxx> #include <cppuhelper/supportsservice.hxx> +#include <salhelper/simplereferenceobject.hxx> namespace com { namespace sun { namespace star { namespace util { struct Date; @@ -63,21 +64,19 @@ namespace connectivity typedef std::map<OUString,OSQLTable,comphelper::UStringMixLess> OSQLTables; // class ORefVector allows reference counting on a std::vector - template< class VectorVal > class ORefVector + template< class VectorVal > class ORefVector : public salhelper::SimpleReferenceObject { std::vector< VectorVal > m_vector; - oslInterlockedCount m_refCount; protected: virtual ~ORefVector(){} public: typedef std::vector< VectorVal > Vector; - ORefVector() : m_refCount(0) {} - ORefVector(size_t _st) : m_vector(_st) , m_refCount(0) {} - ORefVector(const ORefVector& _rRH) : m_vector(_rRH.m_vector),m_refCount(0) - { - } + ORefVector() {} + ORefVector(size_t _st) : m_vector(_st) {} + ORefVector(const ORefVector& _rRH) : m_vector(_rRH.m_vector) {} + ORefVector& operator=(const ORefVector& _rRH) { if ( &_rRH != this ) @@ -90,25 +89,6 @@ namespace connectivity std::vector< VectorVal > & get() { return m_vector; } std::vector< VectorVal > const & get() const { return m_vector; } - inline static void * SAL_CALL operator new( size_t nSize ) - { return ::rtl_allocateMemory( nSize ); } - inline static void SAL_CALL operator delete( void * pMem ) - { ::rtl_freeMemory( pMem ); } - inline static void * SAL_CALL operator new( size_t, void * pMem ) - { return pMem; } - inline static void SAL_CALL operator delete( void *, void * ) - {} - - void acquire() - { - osl_atomic_increment( &m_refCount ); - } - void release() - { - if (! osl_atomic_decrement( &m_refCount )) - delete this; - } - }; // class ORowVector incudes refcounting and initialze himself |