dbaccess/source/core/api/TableDeco.cxx | 13 ++++++------- dbaccess/source/core/api/column.cxx | 9 ++++----- dbaccess/source/core/api/querycontainer.cxx | 4 ++-- dbaccess/source/core/dataaccess/datasource.cxx | 18 ++++++++---------- dbaccess/source/core/dataaccess/datasource.hxx | 3 ++- dbaccess/source/core/inc/ModelImpl.hxx | 3 ++- 6 files changed, 24 insertions(+), 26 deletions(-)
New commits: commit b1b6f4f706492c0889025786f6b3736782dd9194 Author: Noel Grandin <noel.gran...@collabora.co.uk> AuthorDate: Fri Mar 7 15:00:35 2025 +0200 Commit: Noel Grandin <noel.gran...@collabora.co.uk> CommitDate: Fri Mar 7 15:47:08 2025 +0100 use more concrete UNO in dbaccess Change-Id: I46188654135721d21dd05ac2778224a078e96293 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182623 Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> Tested-by: Jenkins diff --git a/dbaccess/source/core/api/TableDeco.cxx b/dbaccess/source/core/api/TableDeco.cxx index 2228042cc748..3d7d9c56b1a5 100644 --- a/dbaccess/source/core/api/TableDeco.cxx +++ b/dbaccess/source/core/api/TableDeco.cxx @@ -607,13 +607,12 @@ void ODBTableDecorator::columnDropped(const OUString& _sName) Reference< XPropertySet > ODBTableDecorator::createColumnDescriptor() { - Reference<XDataDescriptorFactory> xNames; - if(m_xTable.is()) - xNames.set(m_xTable->getColumns(),UNO_QUERY); - Reference< XPropertySet > xRet; - if ( xNames.is() ) - xRet = new OTableColumnDescriptorWrapper( xNames->createDataDescriptor(), false, true ); - return xRet; + if(!m_xTable.is()) + return nullptr; + Reference<XDataDescriptorFactory> xNames(m_xTable->getColumns(),UNO_QUERY); + if ( !xNames.is() ) + return nullptr; + return new OTableColumnDescriptorWrapper( xNames->createDataDescriptor(), false, true ); } void SAL_CALL ODBTableDecorator::acquire() noexcept diff --git a/dbaccess/source/core/api/column.cxx b/dbaccess/source/core/api/column.cxx index 4dc4071fdc8f..e0775417c3dd 100644 --- a/dbaccess/source/core/api/column.cxx +++ b/dbaccess/source/core/api/column.cxx @@ -220,18 +220,17 @@ css::uno::Reference< css::beans::XPropertySet > OColumns::createObject(const OUS { OSL_ENSURE(m_pColFactoryImpl, "OColumns::createObject: no column factory!"); - css::uno::Reference< css::beans::XPropertySet > xRet; + rtl::Reference< OColumn > xRet; if ( m_pColFactoryImpl ) { xRet = m_pColFactoryImpl->createColumn(_rName); - Reference<XChild> xChild(xRet,UNO_QUERY); + Reference<XChild> xChild(cppu::getXWeak(xRet.get()),UNO_QUERY); if ( xChild.is() ) xChild->setParent(static_cast<XChild*>(static_cast<TXChild*>(this))); } - Reference<XPropertySet> xDest(xRet); - if ( m_pMediator && xDest.is() ) - m_pMediator->notifyElementCreated(_rName,xDest); + if ( m_pMediator && xRet.is() ) + m_pMediator->notifyElementCreated(_rName, Reference<XPropertySet>(xRet)); return xRet; } diff --git a/dbaccess/source/core/api/querycontainer.cxx b/dbaccess/source/core/api/querycontainer.cxx index 105591202be9..2b615a878468 100644 --- a/dbaccess/source/core/api/querycontainer.cxx +++ b/dbaccess/source/core/api/querycontainer.cxx @@ -298,7 +298,7 @@ Reference< XVeto > SAL_CALL OQueryContainer::approveInsertElement( const Contain OSL_VERIFY( Event.Accessor >>= sName ); Reference< XContent > xElement( Event.Element, UNO_QUERY_THROW ); - Reference< XVeto > xReturn; + rtl::Reference< Veto > xReturn; try { getElementApproval()->approveElement( sName ); @@ -357,7 +357,7 @@ Reference< XContent > OQueryContainer::implCreateWrapper(const OUString& _rName) Reference< XContent > OQueryContainer::implCreateWrapper(const Reference< XContent >& _rxCommandDesc) { Reference<XNameContainer> xContainer(_rxCommandDesc,UNO_QUERY); - Reference< XContent > xReturn; + rtl::Reference< OContentHelper > xReturn; if ( xContainer .is() ) { xReturn = create( xContainer, m_xConnection, m_aContext, m_pWarnings ). diff --git a/dbaccess/source/core/dataaccess/datasource.cxx b/dbaccess/source/core/dataaccess/datasource.cxx index 93845047d841..1095bf006b22 100644 --- a/dbaccess/source/core/dataaccess/datasource.cxx +++ b/dbaccess/source/core/dataaccess/datasource.cxx @@ -313,10 +313,10 @@ Reference<XConnection> OSharedConnectionManager::getConnection( const OUString& aIter = m_aConnections.emplace(nId,aHolder).first; } - Reference<XConnection> xRet; + rtl::Reference<OSharedConnection> xRet; if ( aIter->second.xMasterConnection.is() ) { - Reference< XAggregation > xConProxy = m_xProxyFactory->createProxy(aIter->second.xMasterConnection); + Reference< XAggregation > xConProxy = m_xProxyFactory->createProxy(cppu::getXWeak(aIter->second.xMasterConnection.get())); xRet = new OSharedConnection(xConProxy); m_aSharedConnection.emplace(xRet,aIter); addEventListener(xRet,aIter); @@ -1115,18 +1115,16 @@ Reference< XConnection > ODatabaseSource::connectWithCompletion( const Reference } } -Reference< XConnection > ODatabaseSource::buildIsolatedConnection(const OUString& user, const OUString& password) +rtl::Reference< OConnection > ODatabaseSource::buildIsolatedConnection(const OUString& user, const OUString& password) { - Reference< XConnection > xConn; Reference< XConnection > xSdbcConn = buildLowLevelConnection(user, password); OSL_ENSURE( xSdbcConn.is(), "ODatabaseSource::buildIsolatedConnection: invalid return value of buildLowLevelConnection!" ); // buildLowLevelConnection is expected to always succeed - if ( xSdbcConn.is() ) - { - // build a connection server and return it (no stubs) - xConn = new OConnection(*this, xSdbcConn, m_pImpl->m_aContext); - } - return xConn; + if ( !xSdbcConn.is() ) + return nullptr; + + // build a connection server and return it (no stubs) + return new OConnection(*this, xSdbcConn, m_pImpl->m_aContext); } Reference< XConnection > ODatabaseSource::getConnection(const OUString& user, const OUString& password,bool _bIsolated) diff --git a/dbaccess/source/core/dataaccess/datasource.hxx b/dbaccess/source/core/dataaccess/datasource.hxx index 5b5985eacd72..2a70c943a3f2 100644 --- a/dbaccess/source/core/dataaccess/datasource.hxx +++ b/dbaccess/source/core/dataaccess/datasource.hxx @@ -55,6 +55,7 @@ namespace dbaccess { class OSharedConnectionManager; +class OConnection; // ODatabaseSource typedef ::cppu::WeakComponentImplHelper< css::lang::XServiceInfo @@ -200,7 +201,7 @@ private: const OUString& _rUid, const OUString& _rPwd ); - css::uno::Reference< css::sdbc::XConnection > buildIsolatedConnection( + rtl::Reference< OConnection > buildIsolatedConnection( const OUString& user, const OUString& password ); diff --git a/dbaccess/source/core/inc/ModelImpl.hxx b/dbaccess/source/core/inc/ModelImpl.hxx index 9f88829519e2..fdf13db41b7b 100644 --- a/dbaccess/source/core/inc/ModelImpl.hxx +++ b/dbaccess/source/core/inc/ModelImpl.hxx @@ -56,6 +56,7 @@ namespace comphelper namespace dbaccess { class OCommandContainer; +class OConnection; typedef std::vector< css::uno::WeakReference< css::sdbc::XConnection > > OWeakConnectionArray; @@ -110,7 +111,7 @@ class OSharedConnectionManager : public ::cppu::WeakImplHelper< css::lang::XEven // contains the currently used master connections struct TConnectionHolder { - css::uno::Reference< css::sdbc::XConnection > xMasterConnection; + rtl::Reference< OConnection > xMasterConnection; oslInterlockedCount nALiveCount; };