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;
     };
 

Reply via email to