diff options
author | Michael Stahl <mstahl@redhat.com> | 2014-10-21 13:33:50 +0200 |
---|---|---|
committer | Michael Stahl <mstahl@redhat.com> | 2014-10-21 15:08:57 +0200 |
commit | a2e4d4329bc3913a198c25c428faedef02f36681 (patch) | |
tree | be9945ed63233bdf6faac2ff6a98c6f522b059ed /connectivity | |
parent | connectivity: firebird: fix Connection leak in OStatementCommonBase (diff) | |
download | core-a2e4d4329bc3913a198c25c428faedef02f36681.tar.gz core-a2e4d4329bc3913a198c25c428faedef02f36681.zip |
connectivity: firebird: use Reference for Connection where appropriate
ODatabaseMetaData and OResultSetMetaData apparently have life-times
independent of their creating object, so they need to own the
Connection too.
Change-Id: Idee28a96e318ca4b3d804084d609737a7fc75862
Diffstat (limited to 'connectivity')
3 files changed, 5 insertions, 6 deletions
diff --git a/connectivity/source/drivers/firebird/DatabaseMetaData.cxx b/connectivity/source/drivers/firebird/DatabaseMetaData.cxx index 52a96ef6ba0c..c1a970f68d05 100644 --- a/connectivity/source/drivers/firebird/DatabaseMetaData.cxx +++ b/connectivity/source/drivers/firebird/DatabaseMetaData.cxx @@ -46,7 +46,8 @@ using namespace com::sun::star::sdbc; ODatabaseMetaData::ODatabaseMetaData(Connection* _pCon) : m_pConnection(_pCon) { - OSL_ENSURE(m_pConnection,"ODatabaseMetaData::ODatabaseMetaData: No connection set!"); + SAL_WARN_IF(!m_pConnection.is(), "connectivity.firebird", + "ODatabaseMetaData::ODatabaseMetaData: No connection set!"); } ODatabaseMetaData::~ODatabaseMetaData() @@ -832,7 +833,7 @@ sal_Bool SAL_CALL ODatabaseMetaData::supportsBatchUpdates() uno::Reference< XConnection > SAL_CALL ODatabaseMetaData::getConnection() throw(SQLException, RuntimeException, std::exception) { - return uno::Reference< XConnection >(m_pConnection); + return uno::Reference<XConnection>(m_pConnection.get()); } // here follow all methods which return a resultset diff --git a/connectivity/source/drivers/firebird/DatabaseMetaData.hxx b/connectivity/source/drivers/firebird/DatabaseMetaData.hxx index 882bfaf57aa1..abb4c1d75eaf 100644 --- a/connectivity/source/drivers/firebird/DatabaseMetaData.hxx +++ b/connectivity/source/drivers/firebird/DatabaseMetaData.hxx @@ -37,11 +37,9 @@ namespace connectivity class ODatabaseMetaData : public ODatabaseMetaData_BASE { - Connection* m_pConnection; + ::rtl::Reference<Connection> m_pConnection; public: - inline Connection* getOwnConnection() const { return m_pConnection; } - ODatabaseMetaData(Connection* _pCon); virtual ~ODatabaseMetaData(); diff --git a/connectivity/source/drivers/firebird/ResultSetMetaData.hxx b/connectivity/source/drivers/firebird/ResultSetMetaData.hxx index 494979eba333..d8ad5697d0aa 100644 --- a/connectivity/source/drivers/firebird/ResultSetMetaData.hxx +++ b/connectivity/source/drivers/firebird/ResultSetMetaData.hxx @@ -38,7 +38,7 @@ namespace connectivity class OResultSetMetaData : public OResultSetMetaData_BASE { protected: - Connection* m_pConnection; + ::rtl::Reference<Connection> m_pConnection; XSQLDA* m_pSqlda; virtual ~OResultSetMetaData(); |