sc/source/filter/excel/xeformula.cxx |   39 ++++++++++++----------
 sc/source/filter/excel/xelink.cxx    |   60 ++++++++++++++---------------------
 2 files changed, 47 insertions(+), 52 deletions(-)

New commits:
commit 243e811abc441ec7f55e1395f23343dfa6f7c812
Author:     Caolán McNamara <caolan.mcnam...@collabora.com>
AuthorDate: Wed Jun 5 10:14:49 2024 +0100
Commit:     Caolán McNamara <caolan.mcnam...@collabora.com>
CommitDate: Wed Jun 5 13:40:42 2024 +0200

    cid#1603200 Uninitialized scalar variable
    
    cid#1603199 Uninitialized scalar variable
    
    and other fixups for:
    
    commit fbe8071e4f6be57d3e372d69a4c7cc4d37a83eb9
    Date:   Sat Oct 15 14:20:31 2022 +0200
    
        refactor functions: return optional instead of bool
    
    Change-Id: I192017d0fc710ada7686e4c6dd313727b02f3889
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/168453
    Reviewed-by: Eike Rathke <er...@redhat.com>
    Tested-by: Jenkins
    Reviewed-by: Caolán McNamara <caolan.mcnam...@collabora.com>

diff --git a/sc/source/filter/excel/xeformula.cxx 
b/sc/source/filter/excel/xeformula.cxx
index 688a9f147217..16bd88715d54 100644
--- a/sc/source/filter/excel/xeformula.cxx
+++ b/sc/source/filter/excel/xeformula.cxx
@@ -452,6 +452,13 @@ private:
     void                AppendExt( double fData );
     void                AppendExt( const OUString& rString );
 
+    std::optional<std::pair<sal_uInt16, sal_uInt16>> InsertDde(const OUString& 
rApplic, const OUString& rTopic, const OUString& rItem)
+    {
+        if (!mxData->mpLinkMgr)
+            return {};
+        return mxData->mpLinkMgr->InsertDde(rApplic, rTopic, rItem);
+    }
+
 private:
     typedef std::map< XclFormulaType, XclExpCompConfig >  XclExpCompConfigMap;
     typedef std::shared_ptr< XclExpCompData >             XclExpCompDataRef;
@@ -1292,16 +1299,13 @@ void XclExpFmlaCompImpl::ProcessDdeLink( const 
XclExpScToken& rTokData )
     if( mxData->mbOk ) mxData->mbOk = !aApplic.isEmpty() && !aTopic.isEmpty() 
&& !aItem.isEmpty();
     if( mxData->mbOk )
     {
-        if ( mxData->mpLinkMgr )
-        {
-            const auto oResult = mxData->mpLinkMgr->InsertDde( aApplic, 
aTopic, aItem);
+        const auto oResult = InsertDde(aApplic, aTopic, aItem);
 
-            if ( oResult ) {
-                AppendNameXToken( oResult->first, oResult->second, 
rTokData.mnSpaces );
-            }
-            else {
-                AppendErrorToken( EXC_ERR_NA, rTokData.mnSpaces );
-            }
+        if ( oResult ) {
+            AppendNameXToken( oResult->first, oResult->second, 
rTokData.mnSpaces );
+        }
+        else {
+            AppendErrorToken( EXC_ERR_NA, rTokData.mnSpaces );
         }
     }
 }
@@ -2438,9 +2442,11 @@ void XclExpFmlaCompImpl::AppendAddInCallToken( const 
XclExpExtFuncData& rExtFunc
     if( mxData->mpLinkMgr && ScGlobal::GetAddInCollection()->GetExcelName( 
rExtFuncData.maFuncName, GetUILanguage(), aXclFuncName ) )
     {
         const auto oResult = mxData->mpLinkMgr->InsertAddIn( aXclFuncName );
-        AppendNameXToken(oResult->first, oResult->second);
-        return;
-
+        if (oResult)
+        {
+            AppendNameXToken(oResult->first, oResult->second);
+            return;
+        }
     }
     AppendMacroCallToken( rExtFuncData );
 }
@@ -2450,14 +2456,13 @@ void XclExpFmlaCompImpl::AppendEuroToolCallToken( const 
XclExpExtFuncData& rExtF
     if ( mxData->mpLinkMgr )
     {
         const auto oResult = mxData->mpLinkMgr->InsertEuroTool( 
rExtFuncData.maFuncName );
-
-        if ( oResult ) {
+        if ( oResult )
+        {
             AppendNameXToken( oResult->first, oResult->second );
-        }
-        else {
-            AppendMacroCallToken( rExtFuncData );
+            return;
         }
     }
+    AppendMacroCallToken( rExtFuncData );
 }
 
 void XclExpFmlaCompImpl::AppendOperatorTokenId( sal_uInt8 nTokenId, const 
XclExpOperandListRef& rxOperands, sal_uInt8 nSpaces )
diff --git a/sc/source/filter/excel/xelink.cxx 
b/sc/source/filter/excel/xelink.cxx
index dff69ed799ab..47217e2d775c 100644
--- a/sc/source/filter/excel/xelink.cxx
+++ b/sc/source/filter/excel/xelink.cxx
@@ -1989,18 +1989,17 @@ std::optional<std::pair<sal_uInt16, sal_uInt16>> 
XclExpSupbookBuffer::InsertEuro
 {
     XclExpSupbookRef xSupbook;
     OUString aUrl( u"EUROTOOL.XLA"_ustr );
-    const auto& nSupbookId = GetSupbookUrl(xSupbook, aUrl);
-    sal_uInt16 nSupbook;
-    if( !nSupbookId )
+    auto nSupbookId = GetSupbookUrl(xSupbook, aUrl);
+    if (!nSupbookId)
     {
         xSupbook = new XclExpSupbook( GetRoot(), aUrl, 
XclSupbookType::Eurotool );
-        nSupbook = Append( xSupbook );
+        nSupbookId = Append(xSupbook);
     }
 
     auto nExtName = xSupbook->InsertEuroTool( rName );
     if( nExtName > 0)
     {
-        return std::make_pair(nSupbook, nExtName);
+        return std::make_pair(*nSupbookId, nExtName);
     }
     return {};
 }
@@ -2010,16 +2009,15 @@ std::optional<std::pair<sal_uInt16, sal_uInt16>> 
XclExpSupbookBuffer::InsertDde(
 {
     XclExpSupbookRef xSupbook;
     auto nSupbookDde = GetSupbookDde( xSupbook, rApplic, rTopic );
-    sal_uInt16 nSupbook;
-    if( !nSupbookDde )
+    if (!nSupbookDde)
     {
         xSupbook = new XclExpSupbook( GetRoot(), rApplic, rTopic );
-        nSupbook = Append(xSupbook);
+        nSupbookDde = Append(xSupbook);
     }
     auto nExtName = xSupbook->InsertDde( rItem );
     if (nExtName > 0)
     {
-        return std::make_pair(nSupbook, nExtName);
+        return std::make_pair(*nSupbookDde, nExtName);
     }
     return {};
 }
@@ -2028,17 +2026,17 @@ std::optional<std::pair<sal_uInt16, sal_uInt16>> 
XclExpSupbookBuffer::InsertExtN
         const OUString& rName, const ScExternalRefCache::TokenArrayRef& rArray 
)
 {
     XclExpSupbookRef xSupbook;
-    const auto& nSupbookId = GetSupbookUrl(xSupbook, rUrl);
-    sal_uInt16 nSupbook;
-    if (!nSupbookId) {
+    auto nSupbookId = GetSupbookUrl(xSupbook, rUrl);
+    if (!nSupbookId)
+    {
         xSupbook = new XclExpSupbook(GetRoot(), rUrl);
-        nSupbook = Append(xSupbook);
+        nSupbookId = Append(xSupbook);
     }
 
     auto nExtName = xSupbook->InsertExtName(rName, rArray);
     if (nExtName > 0)
     {
-        return std::make_pair(nSupbook, nExtName);
+        return std::make_pair(*nSupbookId, nExtName);
     }
     return {};
 }
@@ -2178,7 +2176,7 @@ std::optional<sal_uInt16> 
XclExpSupbookBuffer::GetSupbookUrl(
         rxSupbook = maSupbookList.GetRecord( nPos );
         if( rxSupbook->IsUrlLink( rUrl ) )
         {
-           return ulimit_cast< sal_uInt16 >( nPos );
+            return ulimit_cast< sal_uInt16 >( nPos );
         }
     }
     return {};
@@ -2465,43 +2463,35 @@ void XclExpLinkManagerImpl8::StoreCellRange( sal_uInt16 
nFileId, const OUString&
 
 std::optional<std::pair<sal_uInt16, sal_uInt16>> 
XclExpLinkManagerImpl8::InsertAddIn( const OUString& rName )
 {
-    sal_uInt16 nSupbook(0);
-    if( maSBBuffer.InsertAddIn( rName ) )
-    {
-       return std::make_pair(InsertXti( XclExpXti( nSupbook, EXC_TAB_EXTERNAL, 
EXC_TAB_EXTERNAL ) ), 0);
-    }
+    const auto& rResult = maSBBuffer.InsertAddIn(rName);
+    if (rResult)
+       return std::make_pair(InsertXti( XclExpXti( rResult->first, 
EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) ), rResult->second);
     return {};
 }
 
 std::optional<std::pair<sal_uInt16, sal_uInt16>> 
XclExpLinkManagerImpl8::InsertEuroTool( const OUString& rName )
 {
-    sal_uInt16 nSupbook(0);
-    if( maSBBuffer.InsertEuroTool( rName ) )
-    {
-        return std::make_pair(InsertXti( XclExpXti( nSupbook, 
EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) ), 0);
-    }
+    const auto& rResult = maSBBuffer.InsertEuroTool(rName);
+    if (rResult)
+        return std::make_pair(InsertXti( XclExpXti( rResult->first, 
EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) ), rResult->second);
     return {};
 }
 
 std::optional<std::pair<sal_uInt16, sal_uInt16>> 
XclExpLinkManagerImpl8::InsertDde(
      const OUString& rApplic, const OUString& rTopic, const OUString& rItem )
 {
-    sal_uInt16 nSupbook(0);
-    if( maSBBuffer.InsertDde( rApplic, rTopic, rItem ) )
-    {
-       return std::make_pair(InsertXti( XclExpXti( nSupbook, EXC_TAB_EXTERNAL, 
EXC_TAB_EXTERNAL ) ), 0);
-    }
+    const auto& rResult = maSBBuffer.InsertDde(rApplic, rTopic, rItem);
+    if (rResult)
+       return std::make_pair(InsertXti( XclExpXti( rResult->first, 
EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) ), rResult->second);
     return {};
 }
 
 std::optional<std::pair<sal_uInt16, sal_uInt16>> 
XclExpLinkManagerImpl8::InsertExtName( const OUString& rUrl, const OUString& 
rName,
 const ScExternalRefCache::TokenArrayRef& rArray )
 {
-    sal_uInt16 nSupbook(0);
-    if( maSBBuffer.InsertExtName( rUrl, rName, rArray ) )
-    {
-        return std::make_pair(InsertXti( XclExpXti( nSupbook, 
EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) ), 0);
-    }
+    const auto& rResult = maSBBuffer.InsertExtName(rUrl, rName, rArray);
+    if (rResult)
+        return std::make_pair(InsertXti( XclExpXti( rResult->first, 
EXC_TAB_EXTERNAL, EXC_TAB_EXTERNAL ) ), rResult->second);
     return {};
 }
 

Reply via email to