chart2/source/controller/accessibility/AccessibleBase.cxx   |    2 
 chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx |    4 -
 chart2/source/controller/chartapiwrapper/GridWrapper.cxx    |    2 
 chart2/source/model/main/Axis.cxx                           |    6 +-
 chart2/source/model/main/DataSeries.cxx                     |   16 ++---
 chart2/source/model/template/ChartTypeTemplate.cxx          |    2 
 sc/source/core/inc/interpre.hxx                             |    4 -
 sc/source/core/tool/interpr1.cxx                            |   35 +++++-------
 8 files changed, 35 insertions(+), 36 deletions(-)

New commits:
commit 1d0da28c7e8bb962c33f2390f42e0e84e47ada9d
Author:     Noel Grandin <noelgran...@gmail.com>
AuthorDate: Fri Mar 7 21:21:46 2025 +0200
Commit:     Noel Grandin <noelgran...@gmail.com>
CommitDate: Sat Mar 8 17:42:54 2025 +0100

    no need to allocate these ScTokenArray on the heap
    
    Change-Id: I605e9d3fc19e118b4992cf0799a91de189ed0dbf
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182665
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sc/source/core/inc/interpre.hxx b/sc/source/core/inc/interpre.hxx
index 39383cc311e7..7f07ed329619 100644
--- a/sc/source/core/inc/interpre.hxx
+++ b/sc/source/core/inc/interpre.hxx
@@ -521,8 +521,8 @@ private:
 
     // Get tokens at specific parameters for LET (lambda) function
     static void replaceNamesToResult( const std::unordered_map<OUString, 
formula::FormulaToken*>& rResultIndexes,
-        std::unique_ptr<ScTokenArray>& pTokens, short nStartPos, short nEndPos 
);
-    std::unique_ptr<ScTokenArray> checkPushTokens( const 
std::unique_ptr<ScTokenArray>& pTokens,
+        ScTokenArray& rTokens, short nStartPos, short nEndPos );
+    ScTokenArray checkPushTokens( const ScTokenArray& rTokens,
         short nStartPos, short nEndPos );
 
     void ScTableOp();                                       // repeated 
operations
diff --git a/sc/source/core/tool/interpr1.cxx b/sc/source/core/tool/interpr1.cxx
index d91207ebcbd8..50fbd8244d37 100644
--- a/sc/source/core/tool/interpr1.cxx
+++ b/sc/source/core/tool/interpr1.cxx
@@ -9572,9 +9572,9 @@ void ScInterpreter::ScUnique()
 }
 
 void ScInterpreter::replaceNamesToResult( const std::unordered_map<OUString, 
formula::FormulaToken*>& rResultIndexes,
-    std::unique_ptr<ScTokenArray>& pTokens, short nStartPos, short nEndPos )
+    ScTokenArray& rTokens, short nStartPos, short nEndPos )
 {
-    formula::FormulaTokenArrayPlainIterator aIterResult(*pTokens);
+    formula::FormulaTokenArrayPlainIterator aIterResult(rTokens);
     aIterResult.Jump(nStartPos + 1);
     for (FormulaToken* t = aIterResult.GetNextStringName(); t; t = 
aIterResult.GetNextStringName())
     {
@@ -9582,23 +9582,23 @@ void ScInterpreter::replaceNamesToResult( const 
std::unordered_map<OUString, for
             break;
         auto iRes = rResultIndexes.find(t->GetString().getString());
         if (iRes != rResultIndexes.end())
-            pTokens->ReplaceRPNToken(aIterResult.GetIndex() - 1, 
iRes->second->Clone());
+            rTokens.ReplaceRPNToken(aIterResult.GetIndex() - 1, 
iRes->second->Clone());
     }
 }
 
-std::unique_ptr<ScTokenArray> ScInterpreter::checkPushTokens(const 
std::unique_ptr<ScTokenArray>& pTokens, short nStartPos, short nEndPos)
+ScTokenArray ScInterpreter::checkPushTokens(const ScTokenArray& rTokens, short 
nStartPos, short nEndPos)
 {
-    formula::FormulaTokenArrayPlainIterator aIterResult(*pTokens);
+    formula::FormulaTokenArrayPlainIterator aIterResult(rTokens);
     aIterResult.Jump(nStartPos + 1);
-    unique_ptr<ScTokenArray> pTempTokens(new ScTokenArray(mrDoc));
+    ScTokenArray aTempTokens(mrDoc);
     for (FormulaToken* t = aIterResult.NextRPN(); t; t = aIterResult.NextRPN())
     {
         if (aIterResult.GetIndex() > nEndPos)
             break;
 
-        pTempTokens->AddToken(*t->Clone());
+        aTempTokens.AddToken(*t->Clone());
     }
-    return pTempTokens;
+    return aTempTokens;
 }
 
 void ScInterpreter::ScLet()
@@ -9618,7 +9618,7 @@ void ScInterpreter::ScLet()
     std::unordered_map<OUString, formula::FormulaToken*> nResultIndexes;
     formula::FormulaTokenArrayPlainIterator aIter(*pArr);
     // clone tokens for replacing string name tokens
-    unique_ptr<ScTokenArray> pValueTokens = pArr->Clone();
+    ScTokenArray aValueTokens = pArr->CloneValue();
 
     // name and function pairs parameter
     while (nJumpCount > 1)
@@ -9642,20 +9642,20 @@ void ScInterpreter::ScLet()
         nJumpCount--;
 
         // replace names with result tokens
-        replaceNamesToResult(nResultIndexes, pValueTokens, pJump[nOrgJumpCount 
- nJumpCount], pJump[nOrgJumpCount - nJumpCount + 1]);
+        replaceNamesToResult(nResultIndexes, aValueTokens, pJump[nOrgJumpCount 
- nJumpCount], pJump[nOrgJumpCount - nJumpCount + 1]);
 
-        unique_ptr<ScTokenArray> pTempTokens = checkPushTokens(pValueTokens, 
pJump[nOrgJumpCount - nJumpCount], pJump[nOrgJumpCount - nJumpCount + 1]);
+        ScTokenArray aTempTokens = checkPushTokens(aValueTokens, 
pJump[nOrgJumpCount - nJumpCount], pJump[nOrgJumpCount - nJumpCount + 1]);
 
         // calculate the inner results unless we already have a push result 
token
-        if (pTempTokens->GetLen() == 0)
+        if (aTempTokens.GetLen() == 0)
         {
             PushIllegalParameter();
             aCode.Jump(pJump[nOrgJumpCount], pJump[nOrgJumpCount]);
             return;
         }
-        else if (pTempTokens->GetLen() == 1 && 
pTempTokens->GetArray()[0]->GetOpCode() == ocPush)
+        else if (aTempTokens.GetLen() == 1 && 
aTempTokens.GetArray()[0]->GetOpCode() == ocPush)
         {
-            if (!nResultIndexes.insert(std::make_pair(aStrName, 
pTempTokens->GetArray()[0]->Clone())).second)
+            if (!nResultIndexes.insert(std::make_pair(aStrName, 
aTempTokens.GetArray()[0]->Clone())).second)
             {
                 PushIllegalParameter();
                 aCode.Jump(pJump[nOrgJumpCount], pJump[nOrgJumpCount]);
@@ -9664,7 +9664,7 @@ void ScInterpreter::ScLet()
         }
         else
         {
-            ScInterpreter aInt(mrDoc.GetFormulaCell(aPos), mrDoc, mrContext, 
aPos, *pValueTokens);
+            ScInterpreter aInt(mrDoc.GetFormulaCell(aPos), mrDoc, mrContext, 
aPos, aValueTokens);
             aInt.aCode.Jump(pJump[nOrgJumpCount - nJumpCount], 
pJump[nOrgJumpCount - nJumpCount + 1], pJump[nOrgJumpCount - nJumpCount + 1]);
             while (aInt.aCode.HasStacked())
                 aInt.aCode.FrontPop();
@@ -9701,10 +9701,10 @@ void ScInterpreter::ScLet()
 
     // last parameter: calculation
     // replace names with result tokens
-    replaceNamesToResult(nResultIndexes, pValueTokens, pJump[nOrgJumpCount - 
nJumpCount], pJump[nOrgJumpCount - nJumpCount + 1]);
+    replaceNamesToResult(nResultIndexes, aValueTokens, pJump[nOrgJumpCount - 
nJumpCount], pJump[nOrgJumpCount - nJumpCount + 1]);
 
     // calculate the final result
-    ScInterpreter aInt(mrDoc.GetFormulaCell(aPos), mrDoc, mrContext, aPos, 
*pValueTokens);
+    ScInterpreter aInt(mrDoc.GetFormulaCell(aPos), mrDoc, mrContext, aPos, 
aValueTokens);
     aInt.aCode.Jump(pJump[nOrgJumpCount - nJumpCount], pJump[nOrgJumpCount - 
nJumpCount + 1], pJump[nOrgJumpCount - nJumpCount + 1]);
     while (aInt.aCode.HasStacked())
         aInt.aCode.FrontPop();
@@ -9733,7 +9733,6 @@ void ScInterpreter::ScLet()
     }
 
     nJumpCount--;
-    pValueTokens.reset();
     aCode.Jump(pJump[nOrgJumpCount], pJump[nOrgJumpCount]);
 }
 
commit 309ac64cf45e0d165a84e8526bf388697dba9ec5
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Sat Mar 8 13:23:35 2025 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Sat Mar 8 17:42:42 2025 +0100

    use more concrete UNO in chart2
    
    Change-Id: I0f91e4ed7a2ddc656d0edb3c8a54960a3b1b70b9
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/182666
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>
    Tested-by: Jenkins

diff --git a/chart2/source/controller/accessibility/AccessibleBase.cxx 
b/chart2/source/controller/accessibility/AccessibleBase.cxx
index d97e4674a554..0fd8633ccdfc 100644
--- a/chart2/source/controller/accessibility/AccessibleBase.cxx
+++ b/chart2/source/controller/accessibility/AccessibleBase.cxx
@@ -558,7 +558,7 @@ sal_Bool SAL_CALL AccessibleBase::containsPoint( const 
awt::Point& aPoint )
 Reference< XAccessible > SAL_CALL AccessibleBase::getAccessibleAtPoint( const 
awt::Point& aPoint )
 {
     CheckDisposeState();
-    Reference< XAccessible > aResult;
+    rtl::Reference< AccessibleBase > aResult;
     awt::Rectangle aRect( getBounds());
 
     // children are positioned relative to this object, so translate bound rect
diff --git a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx 
b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
index 79eb36f41050..5237b9a08b4f 100644
--- a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
+++ b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx
@@ -815,7 +815,7 @@ css::awt::Rectangle SAL_CALL 
DiagramWrapper::calculateDiagramPositionIncludingAx
 // ____ XAxisSupplier ____
 Reference< XAxis > SAL_CALL DiagramWrapper::getAxis( sal_Int32 nDimensionIndex 
)
 {
-    Reference< XAxis > xAxis;
+    rtl::Reference< AxisWrapper > xAxis;
     if(!nDimensionIndex)
     {
         if( !m_xXAxis.is() )
@@ -839,7 +839,7 @@ Reference< XAxis > SAL_CALL DiagramWrapper::getAxis( 
sal_Int32 nDimensionIndex )
 
 Reference< XAxis > SAL_CALL DiagramWrapper::getSecondaryAxis( sal_Int32 
nDimensionIndex )
 {
-    Reference< XAxis > xAxis;
+    rtl::Reference< AxisWrapper > xAxis;
     if(!nDimensionIndex)
     {
         if( !m_xSecondXAxis.is() )
diff --git a/chart2/source/controller/chartapiwrapper/GridWrapper.cxx 
b/chart2/source/controller/chartapiwrapper/GridWrapper.cxx
index b1a24bf7ce6d..4931b661cc53 100644
--- a/chart2/source/controller/chartapiwrapper/GridWrapper.cxx
+++ b/chart2/source/controller/chartapiwrapper/GridWrapper.cxx
@@ -101,7 +101,7 @@ void SAL_CALL GridWrapper::removeEventListener(
 
 Reference< beans::XPropertySet > GridWrapper::getInnerPropertySet()
 {
-    Reference< beans::XPropertySet > xRet;
+    rtl::Reference< GridProperties > xRet;
     try
     {
         rtl::Reference< ::chart::Diagram > xDiagram( 
m_spChart2ModelContact->getDiagram() );
diff --git a/chart2/source/model/main/Axis.cxx 
b/chart2/source/model/main/Axis.cxx
index 394e51ce9bb0..9fe2333776bf 100644
--- a/chart2/source/model/main/Axis.cxx
+++ b/chart2/source/model/main/Axis.cxx
@@ -354,7 +354,7 @@ Axis::~Axis()
 
 void Axis::AllocateSubGrids()
 {
-    Reference< util::XModifyListener > xModifyEventForwarder;
+    rtl::Reference< ModifyEventForwarder > xModifyEventForwarder;
     Reference< lang::XEventListener > xEventListener;
     std::vector< rtl::Reference< GridProperties > > aOldBroadcasters;
     std::vector< rtl::Reference< GridProperties > > aNewBroadcasters;
@@ -397,7 +397,7 @@ void Axis::AllocateSubGrids()
 // ____ XAxis ____
 void SAL_CALL Axis::setScaleData( const chart2::ScaleData& rScaleData )
 {
-    Reference< util::XModifyListener > xModifyEventForwarder;
+    rtl::Reference< ModifyEventForwarder > xModifyEventForwarder;
     Reference< lang::XEventListener > xEventListener;
     Reference< chart2::data::XLabeledDataSequence > xOldCategories;
     Reference< chart2::data::XLabeledDataSequence > xNewCategories = 
rScaleData.Categories;
@@ -480,7 +480,7 @@ void SAL_CALL Axis::setTitleObject( const Reference< 
chart2::XTitle >& xNewTitle
 
 void Axis::setTitleObject( const rtl::Reference< Title >& xNewTitle )
 {
-    Reference< util::XModifyListener > xModifyEventForwarder;
+    rtl::Reference< ModifyEventForwarder > xModifyEventForwarder;
     rtl::Reference< Title > xOldTitle;
     {
         MutexGuard aGuard( m_aMutex );
diff --git a/chart2/source/model/main/DataSeries.cxx 
b/chart2/source/model/main/DataSeries.cxx
index 247c3178c27e..30a3a6d81908 100644
--- a/chart2/source/model/main/DataSeries.cxx
+++ b/chart2/source/model/main/DataSeries.cxx
@@ -320,7 +320,7 @@ Reference< beans::XPropertySet >
         if( !xResult.is() )
         {
             Reference< beans::XPropertySet > xParentProperties;
-            Reference< util::XModifyListener > xModifyEventForwarder;
+            rtl::Reference< ModifyEventForwarder > xModifyEventForwarder;
             {
                 MutexGuard aGuard( m_aMutex );
                 xParentProperties = this;
@@ -343,7 +343,7 @@ Reference< beans::XPropertySet >
 void SAL_CALL DataSeries::resetDataPoint( sal_Int32 nIndex )
 {
     Reference< beans::XPropertySet > xDataPointProp;
-    Reference< util::XModifyListener > xModifyEventForwarder;
+    rtl::Reference< ModifyEventForwarder > xModifyEventForwarder;
     {
         MutexGuard aGuard( m_aMutex );
         xModifyEventForwarder = m_xModifyEventForwarder;
@@ -367,7 +367,7 @@ void SAL_CALL DataSeries::resetDataPoint( sal_Int32 nIndex )
 void SAL_CALL DataSeries::resetAllDataPoints()
 {
     tDataPointAttributeContainer  aOldAttributedDataPoints;
-    Reference< util::XModifyListener > xModifyEventForwarder;
+    rtl::Reference< ModifyEventForwarder > xModifyEventForwarder;
     {
         MutexGuard aGuard( m_aMutex );
         xModifyEventForwarder = m_xModifyEventForwarder;
@@ -383,7 +383,7 @@ void SAL_CALL DataSeries::setData( const uno::Sequence< 
Reference< chart2::data:
 {
     tDataSequenceContainer aOldDataSequences;
     tDataSequenceContainer aNewDataSequences;
-    Reference< util::XModifyListener > xModifyEventForwarder;
+    rtl::Reference< ModifyEventForwarder > xModifyEventForwarder;
     {
         MutexGuard aGuard( m_aMutex );
         xModifyEventForwarder = m_xModifyEventForwarder;
@@ -403,7 +403,7 @@ void DataSeries::setData( const std::vector< 
uno::Reference< chart2::data::XLabe
 {
     tDataSequenceContainer aOldDataSequences;
     tDataSequenceContainer aNewDataSequences;
-    Reference< util::XModifyListener > xModifyEventForwarder;
+    rtl::Reference< ModifyEventForwarder > xModifyEventForwarder;
     {
         MutexGuard aGuard( m_aMutex );
         xModifyEventForwarder = m_xModifyEventForwarder;
@@ -434,7 +434,7 @@ void SAL_CALL DataSeries::addRegressionCurve(
 {
     auto pRegressionCurve = 
dynamic_cast<RegressionCurveModel*>(xRegressionCurve.get());
     assert(pRegressionCurve);
-    Reference< util::XModifyListener > xModifyEventForwarder;
+    rtl::Reference< ModifyEventForwarder > xModifyEventForwarder;
     {
         MutexGuard aGuard( m_aMutex );
         xModifyEventForwarder = m_xModifyEventForwarder;
@@ -455,7 +455,7 @@ void SAL_CALL DataSeries::removeRegressionCurve(
     auto pRegressionCurve = 
dynamic_cast<RegressionCurveModel*>(xRegressionCurve.get());
     assert(pRegressionCurve);
 
-    Reference< util::XModifyListener > xModifyEventForwarder;
+    rtl::Reference< ModifyEventForwarder > xModifyEventForwarder;
     {
         MutexGuard aGuard( m_aMutex );
         xModifyEventForwarder = m_xModifyEventForwarder;
@@ -489,7 +489,7 @@ void SAL_CALL DataSeries::setRegressionCurves(
         assert(pRegressionCurve);
         aNewCurves.push_back(pRegressionCurve);
     }
-    Reference< util::XModifyListener > xModifyEventForwarder;
+    rtl::Reference< ModifyEventForwarder > xModifyEventForwarder;
     {
         MutexGuard aGuard( m_aMutex );
         xModifyEventForwarder = m_xModifyEventForwarder;
diff --git a/chart2/source/model/template/ChartTypeTemplate.cxx 
b/chart2/source/model/template/ChartTypeTemplate.cxx
index 584cf548aaff..c5ca7b2c76b2 100644
--- a/chart2/source/model/template/ChartTypeTemplate.cxx
+++ b/chart2/source/model/template/ChartTypeTemplate.cxx
@@ -800,7 +800,7 @@ void 
ChartTypeTemplate::copyPropertiesFromOldToNewCoordinateSystem(
 
     OUString aNewChartType( xNewChartType->getChartType() );
 
-    Reference< beans::XPropertySet > xSource;
+    rtl::Reference< ChartType > xSource;
     for( rtl::Reference< ChartType > const & xOldType : rOldChartTypesSeq )
     {
         if( xOldType.is() && xOldType->getChartType() == aNewChartType )

Reply via email to