diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2018-03-07 14:17:38 +0200 |
---|---|---|
committer | Eike Rathke <erack@redhat.com> | 2018-03-10 19:22:01 +0100 |
commit | 6529cd54c29c5800340530a1b8182c341fbeeafb (patch) | |
tree | 2b09ee9429a0759b8104575aa97e1f4aeadd443e | |
parent | 4ea605cb5c31fe4c7d3931a656782a652b4d96fc (diff) |
don't use heap for elements in ScRangeList
no need to store small objects like this out of line.
Also
- add move constructor and move assignment operator
- drop Assign method since it now has the same
signature as push_back
Change-Id: I9a8647d3a11f24166a83d399a358a2bce3b2cb79
Reviewed-on: https://gerrit.libreoffice.org/50899
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Eike Rathke <erack@redhat.com>
117 files changed, 1077 insertions, 1180 deletions
diff --git a/sc/inc/address.hxx b/sc/inc/address.hxx index a3c7040a21d5..ddc85469d349 100644 --- a/sc/inc/address.hxx +++ b/sc/inc/address.hxx @@ -480,7 +480,7 @@ inline bool ValidAddress( const ScAddress& rAddress ) } // ScRange -class SAL_WARN_UNUSED ScRange +class SAL_WARN_UNUSED ScRange final { public: ScAddress aStart; diff --git a/sc/inc/rangelst.hxx b/sc/inc/rangelst.hxx index 4d9fe2770815..d78c7054499d 100644 --- a/sc/inc/rangelst.hxx +++ b/sc/inc/rangelst.hxx @@ -28,20 +28,22 @@ class ScDocument; -class SC_DLLPUBLIC ScRangeList : public SvRefBase + +class SAL_WARN_UNUSED SC_DLLPUBLIC ScRangeList final : public SvRefBase { public: ScRangeList(); ScRangeList( const ScRangeList& rList ); + ScRangeList( const ScRangeList&& rList ); ScRangeList( const ScRange& rRange ); virtual ~ScRangeList() override; ScRangeList& operator=(const ScRangeList& rList); - void Append( const ScRange& rRange ); + ScRangeList& operator=(ScRangeList&& rList); - ScRefFlags Parse( const OUString&, const ScDocument*, - formula::FormulaGrammar::AddressConvention eConv = formula::FormulaGrammar::CONV_OOO, - SCTAB nDefaultTab = 0, sal_Unicode cDelimiter = 0 ); + ScRefFlags Parse( const OUString&, const ScDocument*, + formula::FormulaGrammar::AddressConvention eConv = formula::FormulaGrammar::CONV_OOO, + SCTAB nDefaultTab = 0, sal_Unicode cDelimiter = 0 ); void Format( OUString&, ScRefFlags nFlags, ScDocument*, formula::FormulaGrammar::AddressConvention eConv = formula::FormulaGrammar::CONV_OOO, @@ -56,8 +58,8 @@ public: SCTAB nDz ); - void InsertRow( SCTAB nTab, SCCOL nColStart, SCCOL nColEnd, SCROW nRowPos, SCSIZE nSize ); - void InsertCol( SCTAB nTab, SCROW nRowStart, SCROW nRowEnd, SCCOL nColPos, SCSIZE nSize ); + void InsertRow( SCTAB nTab, SCCOL nColStart, SCCOL nColEnd, SCROW nRowPos, SCSIZE nSize ); + void InsertCol( SCTAB nTab, SCROW nRowStart, SCROW nRowEnd, SCCOL nColPos, SCSIZE nSize ); /** For now this method assumes that nTab1 == nTab2 * The algorithm will be much more complicated if nTab1 != nTab2 @@ -81,23 +83,23 @@ public: ScRange Combine() const; - bool empty() const; - size_t size() const; - ScRange* operator[](size_t idx); - const ScRange* operator[](size_t idx) const; - ScRange* front(); - const ScRange* front() const; - ScRange* back(); - const ScRange* back() const; - void push_back(ScRange* p); + bool empty() const { return maRanges.empty(); } + size_t size() const { return maRanges.size(); } + ScRange& operator[](size_t idx) { return maRanges[idx]; } + const ScRange& operator[](size_t idx) const { return maRanges[idx]; } + ScRange& front() { return maRanges.front(); } + const ScRange& front() const { return maRanges.front(); } + ScRange& back() { return maRanges.back(); } + const ScRange& back() const { return maRanges.back(); } + void push_back(const ScRange & rRange); void swap( ScRangeList& r ); private: - ::std::vector<ScRange*> maRanges; + ::std::vector<ScRange> maRanges; SCROW mnMaxRowUsed; - typedef std::vector<ScRange*>::iterator iterator; - typedef std::vector<ScRange*>::const_iterator const_iterator; + typedef std::vector<ScRange>::iterator iterator; + typedef std::vector<ScRange>::const_iterator const_iterator; }; typedef tools::SvRef<ScRangeList> ScRangeListRef; @@ -110,7 +112,7 @@ inline std::basic_ostream<charT, traits> & operator <<(std::basic_ostream<charT, { if (i > 0) stream << ","; - stream << *(rRangeList[i]); + stream << rRangeList[i]; } stream << ")"; diff --git a/sc/qa/unit/helper/qahelper.cxx b/sc/qa/unit/helper/qahelper.cxx index f99d23df203e..3f7c93198312 100644 --- a/sc/qa/unit/helper/qahelper.cxx +++ b/sc/qa/unit/helper/qahelper.cxx @@ -53,7 +53,7 @@ std::ostream& operator<<(std::ostream& rStrm, const ScRangeList& rList) { rStrm << "ScRangeList: \n"; for(size_t i = 0; i < rList.size(); ++i) - rStrm << *rList[i]; + rStrm << rList[i]; return rStrm; } @@ -382,14 +382,14 @@ ScRangeList getChartRanges(ScDocument& rDoc, const SdrOle2Obj& rChartObj) ScRefFlags nRes = aRange.Parse(aRangeReps[i], &rDoc, rDoc.GetAddressConvention()); if (nRes & ScRefFlags::VALID) // This is a range address. - aRanges.Append(aRange); + aRanges.push_back(aRange); else { // Parse it as a single cell address. ScAddress aAddr; nRes = aAddr.Parse(aRangeReps[i], &rDoc, rDoc.GetAddressConvention()); CPPUNIT_ASSERT_MESSAGE("Failed to parse a range representation.", (nRes & ScRefFlags::VALID)); - aRanges.Append(aAddr); + aRanges.push_back(aAddr); } } diff --git a/sc/qa/unit/mark_test.cxx b/sc/qa/unit/mark_test.cxx index a083d482b219..0c393e934b77 100644 --- a/sc/qa/unit/mark_test.cxx +++ b/sc/qa/unit/mark_test.cxx @@ -120,10 +120,10 @@ static void lcl_GetSortedRanges( const ScRangeList& rRangeList, ScRangeList& rRa size_t nSize = rRangeList.size(); aRanges.reserve( nSize ); for ( size_t nIdx = 0; nIdx < nSize; ++nIdx ) - aRanges.push_back( *rRangeList[nIdx] ); + aRanges.push_back( rRangeList[nIdx] ); std::sort( aRanges.begin(), aRanges.end() ); for ( size_t nIdx = 0; nIdx < nSize; ++nIdx ) - rRangeListOut.Append( aRanges[nIdx] ); + rRangeListOut.push_back( aRanges[nIdx] ); } void Test::testSimpleMark( const ScRange& rRange, const ScRange& rSelectionCover, @@ -544,25 +544,25 @@ void Test::testMultiMark_FourRanges() aData.aMarks.push_back( aSingle4 ); aData.aSelectionCover = ScRange( 0, 0, 0, MAXCOL, MAXROW, 0 ); - aData.aLeftEnvelope.Append( ScRange( 9, 5, 0, 9, 10, 0 ) ); - aData.aLeftEnvelope.Append( ScRange( 24, 7, 0, 24, 15, 0 ) ); - aData.aLeftEnvelope.Append( ScRange( 34, 0, 0, 34, 19, 0 ) ); - aData.aLeftEnvelope.Append( ScRange( 34, 21, 0, 34, MAXROW, 0 ) ); - - aData.aRightEnvelope.Append( ScRange( 21, 5, 0, 21, 10, 0 ) ); - aData.aRightEnvelope.Append( ScRange( 31, 7, 0, 31, 15, 0 ) ); - aData.aRightEnvelope.Append( ScRange( 36, 0, 0, 36, 19, 0 ) ); - aData.aRightEnvelope.Append( ScRange( 36, 21, 0, 36, MAXROW, 0 ) ); - - aData.aTopEnvelope.Append( ScRange( 10, 4, 0, 20, 4, 0 ) ); - aData.aTopEnvelope.Append( ScRange( 25, 6, 0, 30, 6, 0 ) ); - aData.aTopEnvelope.Append( ScRange( 0, 19, 0, 34, 19, 0 ) ); - aData.aTopEnvelope.Append( ScRange( 36, 19, 0, MAXCOL, 19, 0 ) ); - - aData.aBottomEnvelope.Append( ScRange( 10, 11, 0, 20, 11, 0 ) ); - aData.aBottomEnvelope.Append( ScRange( 25, 16, 0, 30, 16, 0 ) ); - aData.aBottomEnvelope.Append( ScRange( 0, 21, 0, 34, 21, 0 ) ); - aData.aBottomEnvelope.Append( ScRange( 36, 21, 0, MAXCOL, 21, 0 ) ); + aData.aLeftEnvelope.push_back( ScRange( 9, 5, 0, 9, 10, 0 ) ); + aData.aLeftEnvelope.push_back( ScRange( 24, 7, 0, 24, 15, 0 ) ); + aData.aLeftEnvelope.push_back( ScRange( 34, 0, 0, 34, 19, 0 ) ); + aData.aLeftEnvelope.push_back( ScRange( 34, 21, 0, 34, MAXROW, 0 ) ); + + aData.aRightEnvelope.push_back( ScRange( 21, 5, 0, 21, 10, 0 ) ); + aData.aRightEnvelope.push_back( ScRange( 31, 7, 0, 31, 15, 0 ) ); + aData.aRightEnvelope.push_back( ScRange( 36, 0, 0, 36, 19, 0 ) ); + aData.aRightEnvelope.push_back( ScRange( 36, 21, 0, 36, MAXROW, 0 ) ); + + aData.aTopEnvelope.push_back( ScRange( 10, 4, 0, 20, 4, 0 ) ); + aData.aTopEnvelope.push_back( ScRange( 25, 6, 0, 30, 6, 0 ) ); + aData.aTopEnvelope.push_back( ScRange( 0, 19, 0, 34, 19, 0 ) ); + aData.aTopEnvelope.push_back( ScRange( 36, 19, 0, MAXCOL, 19, 0 ) ); + + aData.aBottomEnvelope.push_back( ScRange( 10, 11, 0, 20, 11, 0 ) ); + aData.aBottomEnvelope.push_back( ScRange( 25, 16, 0, 30, 16, 0 ) ); + aData.aBottomEnvelope.push_back( ScRange( 0, 21, 0, 34, 21, 0 ) ); + aData.aBottomEnvelope.push_back( ScRange( 36, 21, 0, MAXCOL, 21, 0 ) ); MarkArrayTestData aMarkArrayTestData1; aMarkArrayTestData1.nCol = 5; @@ -744,29 +744,29 @@ void Test::testMultiMark_NegativeMarking() aData.aMarks.push_back( aSingle5 ); aData.aSelectionCover = ScRange( 0, 4, 0, MAXCOL, 21, 0 ); - aData.aLeftEnvelope.Append( ScRange( 9, 8, 0, 9, 11, 0 ) ); - aData.aLeftEnvelope.Append( ScRange( 9, 13, 0, 9, 20, 0 ) ); - aData.aLeftEnvelope.Append( ScRange( 18, 10, 0, 18, 14, 0 ) ); - aData.aLeftEnvelope.Append( ScRange( 20, 5, 0, 20, 5, 0 ) ); - - aData.aRightEnvelope.Append( ScRange( 17, 5, 0, 17, 5, 0 ) ); - aData.aRightEnvelope.Append( ScRange( 15, 10, 0, 15, 14, 0 ) ); - aData.aRightEnvelope.Append( ScRange( 26, 8, 0, 26, 11, 0 ) ); - aData.aRightEnvelope.Append( ScRange( 26, 13, 0, 26, 20, 0 ) ); - - aData.aTopEnvelope.Append( ScRange( 0, 4, 0, 16, 4, 0 ) ); - aData.aTopEnvelope.Append( ScRange( 21, 4, 0, MAXCOL, 4, 0 ) ); - aData.aTopEnvelope.Append( ScRange( 10, 7, 0, 25, 7, 0 ) ); - aData.aTopEnvelope.Append( ScRange( 0, 11, 0, 9, 11, 0 ) ); - aData.aTopEnvelope.Append( ScRange( 26, 11, 0, MAXCOL, 11, 0 ) ); - aData.aTopEnvelope.Append( ScRange( 15, 14, 0, 18, 14, 0 ) ); - - aData.aBottomEnvelope.Append( ScRange( 0, 6, 0, 16, 6, 0 ) ); - aData.aBottomEnvelope.Append( ScRange( 21, 6, 0, MAXCOL, 6, 0 ) ); - aData.aBottomEnvelope.Append( ScRange( 15, 10, 0, 18, 10, 0 ) ); - aData.aBottomEnvelope.Append( ScRange( 0, 13, 0, 9, 13, 0 ) ); - aData.aBottomEnvelope.Append( ScRange( 26, 13, 0, MAXCOL, 13, 0 ) ); - aData.aBottomEnvelope.Append( ScRange( 10, 21, 0, 25, 21, 0 ) ); + aData.aLeftEnvelope.push_back( ScRange( 9, 8, 0, 9, 11, 0 ) ); + aData.aLeftEnvelope.push_back( ScRange( 9, 13, 0, 9, 20, 0 ) ); + aData.aLeftEnvelope.push_back( ScRange( 18, 10, 0, 18, 14, 0 ) ); + aData.aLeftEnvelope.push_back( ScRange( 20, 5, 0, 20, 5, 0 ) ); + + aData.aRightEnvelope.push_back( ScRange( 17, 5, 0, 17, 5, 0 ) ); + aData.aRightEnvelope.push_back( ScRange( 15, 10, 0, 15, 14, 0 ) ); + aData.aRightEnvelope.push_back( ScRange( 26, 8, 0, 26, 11, 0 ) ); + aData.aRightEnvelope.push_back( ScRange( 26, 13, 0, 26, 20, 0 ) ); + + aData.aTopEnvelope.push_back( ScRange( 0, 4, 0, 16, 4, 0 ) ); + aData.aTopEnvelope.push_back( ScRange( 21, 4, 0, MAXCOL, 4, 0 ) ); + aData.aTopEnvelope.push_back( ScRange( 10, 7, 0, 25, 7, 0 ) ); + aData.aTopEnvelope.push_back( ScRange( 0, 11, 0, 9, 11, 0 ) ); + aData.aTopEnvelope.push_back( ScRange( 26, 11, 0, MAXCOL, 11, 0 ) ); + aData.aTopEnvelope.push_back( ScRange( 15, 14, 0, 18, 14, 0 ) ); + + aData.aBottomEnvelope.push_back( ScRange( 0, 6, 0, 16, 6, 0 ) ); + aData.aBottomEnvelope.push_back( ScRange( 21, 6, 0, MAXCOL, 6, 0 ) ); + aData.aBottomEnvelope.push_back( ScRange( 15, 10, 0, 18, 10, 0 ) ); + aData.aBottomEnvelope.push_back( ScRange( 0, 13, 0, 9, 13, 0 ) ); + aData.aBottomEnvelope.push_back( ScRange( 26, 13, 0, MAXCOL, 13, 0 ) ); + aData.aBottomEnvelope.push_back( ScRange( 10, 21, 0, 25, 21, 0 ) ); aData.aColsWithOneMark.emplace_back( 19, 8, 0, 0, 20, 0 ); aData.aColsWithOneMark.emplace_back( 20, 8, 0, 0, 20, 0 ); diff --git a/sc/qa/unit/rangelst_test.cxx b/sc/qa/unit/rangelst_test.cxx index 1e0236a549b1..0858f7a358af 100644 --- a/sc/qa/unit/rangelst_test.cxx +++ b/sc/qa/unit/rangelst_test.cxx @@ -410,24 +410,24 @@ void Test::testDeleteArea_0Ranges() void Test::testJoin_Case1() { ScRangeList aList; - aList.push_back(new ScRange(1,1,0,3,3,0)); + aList.push_back(ScRange(1,1,0,3,3,0)); aList.Join(ScRange(4,1,0,6,3,0)); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size()); - CPPUNIT_ASSERT_EQUAL( ScRange(1,1,0,6,3,0), *aList[0]); + CPPUNIT_ASSERT_EQUAL( ScRange(1,1,0,6,3,0), aList[0]); } void Test::testJoin_Case2() { ScRangeList aList; - aList.push_back(new ScRange(1,1,0,3,3,0)); - aList.push_back(new ScRange(4,1,0,6,3,0)); - aList.push_back(new ScRange(7,1,0,9,3,0)); + aList.push_back(ScRange(1,1,0,3,3,0)); + aList.push_back(ScRange(4,1,0,6,3,0)); + aList.push_back(ScRange(7,1,0,9,3,0)); - aList.Join(*aList[2], true); + aList.Join(aList[2], true); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size()); - CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,9,3,0), *aList[0]); + CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,9,3,0), aList[0]); } void Test::testJoin_Case3() @@ -438,7 +438,7 @@ void Test::testJoin_Case3() // The second one should have been swallowed by the first one CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size()); - CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,6,6,0), *aList[0]); + CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,6,6,0), aList[0]); // Add a disjoint one aList.Join(ScRange(8,8,0,9,9,0)); @@ -446,9 +446,9 @@ void Test::testJoin_Case3() // Should be two ones now CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aList.size()); // The first one should still be as is - CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,6,6,0), *aList[0]); + CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,6,6,0), aList[0]); // Ditto for the second one - CPPUNIT_ASSERT_EQUAL(ScRange(8,8,0,9,9,0), *aList[1]); + CPPUNIT_ASSERT_EQUAL(ScRange(8,8,0,9,9,0), aList[1]); } void Test::testJoin_Case4() @@ -460,14 +460,14 @@ void Test::testJoin_Case4() // The one range in the list should have been extended CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size()); - CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,2,8,0), *aList[0]); + CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,2,8,0), aList[0]); // Join a range that overlaps it and extends it horizontally aList.Join(ScRange(2,1,0,4,8,0)); // Again, should have just been extended CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size()); - CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,4,8,0), *aList[0]); + CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,4,8,0), aList[0]); // And then the same but on top / to the left of existing range ScRangeList aList2; @@ -475,12 +475,12 @@ void Test::testJoin_Case4() aList2.Join(ScRange(4,1,0,8,6,0)); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList2.size()); - CPPUNIT_ASSERT_EQUAL(ScRange(4,1,0,8,8,0), *aList2[0]); + CPPUNIT_ASSERT_EQUAL(ScRange(4,1,0,8,8,0), aList2[0]); aList2.Join(ScRange(1,1,0,6,8,0)); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList2.size()); - CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,8,8,0), *aList2[0]); + CPPUNIT_ASSERT_EQUAL(ScRange(1,1,0,8,8,0), aList2[0]); } void Test::testJoin_Case5() @@ -491,14 +491,14 @@ void Test::testJoin_Case5() // Nothing special so far, two disjoint ranges CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), aList.size()); - CPPUNIT_ASSERT_EQUAL(ScRange(0,0,0,4,4,0), *aList[0]); - CPPUNIT_ASSERT_EQUAL(ScRange(8,0,0,10,4,0), *aList[1]); + CPPUNIT_ASSERT_EQUAL(ScRange(0,0,0,4,4,0), aList[0]); + CPPUNIT_ASSERT_EQUAL(ScRange(8,0,0,10,4,0), aList[1]); // This should join the two ranges into one aList.Join(ScRange(5,0,0,9,4,0)); CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(1), aList.size()); - CPPUNIT_ASSERT_EQUAL(ScRange(0,0,0,10,4,0), *aList[0]); + CPPUNIT_ASSERT_EQUAL(ScRange(0,0,0,10,4,0), aList[0]); } void Test::testUpdateReference_DeleteRow() diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx index d2544ab010fd..2b03df58ad9f 100644 --- a/sc/qa/unit/ucalc.cxx +++ b/sc/qa/unit/ucalc.cxx @@ -355,9 +355,9 @@ void Test::testRangeList() m_pDoc->InsertTab(0, "foo"); ScRangeList aRL; - aRL.Append(ScRange(1,1,0,3,10,0)); + aRL.push_back(ScRange(1,1,0,3,10,0)); CPPUNIT_ASSERT_EQUAL_MESSAGE("List should have one range.", size_t(1), aRL.size()); - const ScRange* p = aRL[0]; + const ScRange* p = &aRL[0]; CPPUNIT_ASSERT_MESSAGE("Failed to get the range object.", p); CPPUNIT_ASSERT_MESSAGE("Wrong range.", p->aStart == ScAddress(1,1,0) && p->aEnd == ScAddress(3,10,0)); @@ -582,8 +582,8 @@ void Test::testSelectionFunction() // Select B2:B8 & D2:D8 disjoint region. ScRangeList aRanges; - aRanges.Append(ScRange(1,1,0,1,7,0)); // B2:B8 - aRanges.Append(ScRange(3,1,0,3,7,0)); // D2:D8 + aRanges.push_back(ScRange(1,1,0,1,7,0)); // B2:B8 + aRanges.push_back(ScRange(3,1,0,3,7,0)); // D2:D8 ScMarkData aMark; aMark.MarkFromRangeList(aRanges, true); @@ -703,8 +703,8 @@ void Test::testSelectionFunction() // Mark B2 and C3 on first sheet. aRanges.RemoveAll(); - aRanges.Append(ScRange(1,1,0)); // B2 - aRanges.Append(ScRange(2,2,0)); // C3 + aRanges.push_back(ScRange(1,1,0)); // B2 + aRanges.push_back(ScRange(2,2,0)); // C3 aMark.MarkFromRangeList(aRanges, true); // Additionally select third sheet. aMark.SelectTable(2, true); @@ -3566,9 +3566,9 @@ void Test::testCopyPasteMultiRange() // Copy A2:B2, A4:B4, and A6:B6 to clipboard. ScDocument aClipDoc(SCDOCMODE_CLIP); ScClipParam aClipParam; - aClipParam.maRanges.Append(ScRange(0,1,0,1,1,0)); // A2:B2 - aClipParam.maRanges.Append(ScRange(0,3,0,1,3,0)); // A4:B4 - aClipParam.maRanges.Append(ScRange(0,5,0,1,5,0)); // A6:B6 + aClipParam.maRanges.push_back(ScRange(0,1,0,1,1,0)); // A2:B2 + aClipParam.maRanges.push_back(ScRange(0,3,0,1,3,0)); // A4:B4 + aClipParam.maRanges.push_back(ScRange(0,5,0,1,5,0)); // A6:B6 aClipParam.meDirection = ScClipParam::Row; m_pDoc->CopyToClip(aClipParam, &aClipDoc, &aMark, false, false); diff --git a/sc/qa/unit/ucalc_condformat.cxx b/sc/qa/unit/ucalc_condformat.cxx index 0e8721a0acb8..148e43416121 100644 --- a/sc/qa/unit/ucalc_condformat.cxx +++ b/sc/qa/unit/ucalc_condformat.cxx @@ -187,7 +187,7 @@ void Test::testCondFormatInsertDeleteSheets() // ... and its range is B2:B4. ScRangeList aCheckRange = pCheck->GetRange(); CPPUNIT_ASSERT_EQUAL_MESSAGE("This should be a single range.", size_t(1), aCheckRange.size()); - const ScRange* pRange = aCheckRange[0]; + const ScRange* pRange = &aCheckRange[0]; CPPUNIT_ASSERT(pRange); CPPUNIT_ASSERT_EQUAL_MESSAGE("Format should be applied to B2:B4.", ScRange(1,1,0,1,3,0), *pRange); @@ -205,7 +205,7 @@ void Test::testCondFormatInsertDeleteSheets() // Make sure the range also got shifted. aCheckRange = pCheck->GetRange(); CPPUNIT_ASSERT_EQUAL_MESSAGE("This should be a single range.", size_t(1), aCheckRange.size()); - pRange = aCheckRange[0]; + pRange = &aCheckRange[0]; CPPUNIT_ASSERT(pRange); CPPUNIT_ASSERT_EQUAL_MESSAGE("Format should be applied to B2:B4 on the 2nd sheet after the sheet insertion.", ScRange(1,1,1,1,3,1), *pRange); @@ -221,7 +221,7 @@ void Test::testCondFormatInsertDeleteSheets() // Make sure the range got shifted back. aCheckRange = pCheck->GetRange(); CPPUNIT_ASSERT_EQUAL_MESSAGE("This should be a single range.", size_t(1), aCheckRange.size()); - pRange = aCheckRange[0]; + pRange = &aCheckRange[0]; CPPUNIT_ASSERT(pRange); CPPUNIT_ASSERT_EQUAL_MESSAGE("Format should be applied to B2:B4 on the 1st sheet after the sheet removal.", ScRange(1,1,0,1,3,0), *pRange); @@ -238,7 +238,7 @@ void Test::testCondFormatInsertDeleteSheets() aCheckRange = pCheck->GetRange(); CPPUNIT_ASSERT_EQUAL_MESSAGE("This should be a single range.", size_t(1), aCheckRange.size()); - pRange = aCheckRange[0]; + pRange = &aCheckRange[0]; CPPUNIT_ASSERT(pRange); CPPUNIT_ASSERT_EQUAL_MESSAGE("Format should be applied to B2:B4 on the 2nd sheet after the undo of the sheet removal.", ScRange(1,1,1,1,3,1), *pRange); diff --git a/sc/source/core/data/clipparam.cxx b/sc/source/core/data/clipparam.cxx index 51738c9532e3..b33c4998c10b 100644 --- a/sc/source/core/data/clipparam.cxx +++ b/sc/source/core/data/clipparam.cxx @@ -32,7 +32,7 @@ ScClipParam::ScClipParam(const ScRange& rRange, bool bCutMode) : mbCutMode(bCutMode), mnSourceDocID(0) { - maRanges.Append(rRange); + maRanges.push_back(rRange); } bool ScClipParam::isMultiRange() const @@ -52,15 +52,15 @@ SCCOL ScClipParam::getPasteColSize() SCCOL nColSize = 0; for ( size_t i = 0, nListSize = maRanges.size(); i < nListSize; ++i ) { - ScRange* p = maRanges[ i ]; - nColSize += p->aEnd.Col() - p->aStart.Col() + 1; + const ScRange& rRange = maRanges[ i ]; + nColSize += rRange.aEnd.Col() - rRange.aStart.Col() + 1; } return nColSize; } case ScClipParam::Row: { // We assume that all ranges have identical column size. - const ScRange& rRange = *maRanges.front(); + const ScRange& rRange = maRanges.front(); return rRange.aEnd.Col() - rRange.aStart.Col() + 1; } case ScClipParam::Unspecified: @@ -80,7 +80,7 @@ SCROW ScClipParam::getPasteRowSize() case ScClipParam::Column: { // We assume that all ranges have identical row size. - const ScRange& rRange = *maRanges.front(); + const ScRange& rRange = maRanges.front(); return rRange.aEnd.Row() - rRange.aStart.Row() + 1; } case ScClipParam::Row: @@ -88,8 +88,8 @@ SCROW ScClipParam::getPasteRowSize() SCROW nRowSize = 0; for ( size_t i = 0, nListSize = maRanges.size(); i < nListSize; ++i ) { - ScRange* p = maRanges[ i ]; - nRowSize += p->aEnd.Row() - p->aStart.Row() + 1; + const ScRange& rRange = maRanges[ i ]; + nRowSize += rRange.aEnd.Row() - rRange.aStart.Row() + 1; } return nRowSize; } @@ -123,24 +123,24 @@ void ScClipParam::transpose() ScRangeList aNewRanges; if (!maRanges.empty()) { - ScRange* p = maRanges.front(); - SCCOL nColOrigin = p->aStart.Col(); - SCROW nRowOrigin = p->aStart.Row(); + const ScRange & rRange1 = maRanges.front(); + SCCOL nColOrigin = rRange1.aStart.Col(); + SCROW nRowOrigin = rRange1.aStart.Row(); for ( size_t i = 0, n = maRanges.size(); i < n; ++i ) { - p = maRanges[ i ]; - SCCOL nColDelta = p->aStart.Col() - nColOrigin; - SCROW nRowDelta = p->aStart.Row() - nRowOrigin; + const ScRange & rRange = maRanges[ i ]; + SCCOL nColDelta = rRange.aStart.Col() - nColOrigin; + SCROW nRowDelta = rRange.aStart.Row() - nRowOrigin; SCCOL nCol1 = 0; - SCCOL nCol2 = static_cast<SCCOL>(p->aEnd.Row() - p->aStart.Row()); + SCCOL nCol2 = static_cast<SCCOL>(rRange.aEnd.Row() - rRange.aStart.Row()); SCROW nRow1 = 0; - SCROW nRow2 = static_cast<SCROW>(p->aEnd.Col() - p->aStart.Col()); + SCROW nRow2 = static_cast<SCROW>(rRange.aEnd.Col() - rRange.aStart.Col()); nCol1 += static_cast<SCCOL>(nRowDelta); nCol2 += static_cast<SCCOL>(nRowDelta); nRow1 += static_cast<SCROW>(nColDelta); nRow2 += static_cast<SCROW>(nColDelta); - aNewRanges.push_back( new ScRange(nCol1, nRow1, p->aStart.Tab(), nCol2, nRow2, p->aStart.Tab() ) ); + aNewRanges.push_back( ScRange(nCol1, nRow1, rRange.aStart.Tab(), nCol2, nRow2, rRange.aStart.Tab() ) ); } } maRanges = aNewRanges; diff --git a/sc/source/core/data/colorscale.cxx b/sc/source/core/data/colorscale.cxx index a07f3ac0f1e6..8826fada3d04 100644 --- a/sc/source/core/data/colorscale.cxx +++ b/sc/source/core/data/colorscale.cxx @@ -393,13 +393,13 @@ std::vector<double>& ScColorFormat::getValues() const const ScRangeList& aRanges = GetRange(); for(size_t i = 0; i < n; ++i) { - const ScRange* pRange = aRanges[i]; - SCTAB nTab = pRange->aStart.Tab(); + const ScRange & rRange = aRanges[i]; + SCTAB nTab = rRange.aStart.Tab(); - SCCOL nColStart = pRange->aStart.Col(); - SCROW nRowStart = pRange->aStart.Row(); - SCCOL nColEnd = pRange->aEnd.Col(); - SCROW nRowEnd = pRange->aEnd.Row(); + SCCOL nColStart = rRange.aStart.Col(); + SCROW nRowStart = rRange.aStart.Row(); + SCCOL nColEnd = rRange.aEnd.Col(); + SCROW nRowEnd = rRange.aEnd.Row(); if(nRowEnd == MAXROW) { diff --git a/sc/source/core/data/column.cxx b/sc/source/core/data/column.cxx index 412d62385dcb..2dad0de39037 100644 --- a/sc/source/core/data/column.cxx +++ b/sc/source/core/data/column.cxx @@ -207,7 +207,7 @@ bool ScColumn::HasSelectionMatrixFragment(const ScMarkData& rMark) const ScRangeList aRanges = rMark.GetMarkedRanges(); for (size_t i = 0, n = aRanges.size(); i < n; ++i) { - const ScRange& r = *aRanges[i]; + const ScRange& r = aRanges[i]; if (nTab < r.aStart.Tab() || r.aEnd.Tab() < nTab) continue; diff --git a/sc/source/core/data/columnspanset.cxx b/sc/source/core/data/columnspanset.cxx index a3f338abbb9b..d7d7718bbb84 100644 --- a/sc/source/core/data/columnspanset.cxx +++ b/sc/source/core/data/columnspanset.cxx @@ -337,15 +337,15 @@ void SingleColumnSpanSet::scan(const ScRangeList& rRanges, SCTAB nTab, SCCOL nCo { for (size_t i = 0, n = rRanges.size(); i < n; ++i) { - const ScRange* p = rRanges[i]; - if (nTab < p->aStart.Tab() || p->aEnd.Tab() < nTab) + const ScRange & rRange = rRanges[i]; + if (nTab < rRange.aStart.Tab() || rRange.aEnd.Tab() < nTab) continue; - if (nCol < p->aStart.Col() || p->aEnd.Col() < nCol) + if (nCol < rRange.aStart.Col() || rRange.aEnd.Col() < nCol) // This column is not in this range. Skip it. continue; - maSpans.insert_back(p->aStart.Row(), p->aEnd.Row()+1, true); + maSpans.insert_back(rRange.aStart.Row(), rRange.aEnd.Row()+1, true); } } diff --git a/sc/source/core/data/conditio.cxx b/sc/source/core/data/conditio.cxx index c09e5e90b250..c07d7672d789 100644 --- a/sc/source/core/data/conditio.cxx +++ b/sc/source/core/data/conditio.cxx @@ -146,11 +146,8 @@ void start_listen_to(ScFormulaListener& rListener, const ScTokenArray* pTokens, size_t n = rRangeList.size(); for (size_t i = 0; i < n; ++i) { - const ScRange* pRange = rRangeList[i]; - if (!pRange) - continue; - - rListener.addTokenArray(pTokens, *pRange); + const ScRange & rRange = rRangeList[i]; + rListener.addTokenArray(pTokens, rRange); } } @@ -784,12 +781,12 @@ void ScConditionEntry::FillCache() const size_t nListCount = rRanges.size(); for( size_t i = 0; i < nListCount; i++ ) { - const ScRange *aRange = rRanges[i]; - SCROW nRow = aRange->aEnd.Row(); - SCCOL nCol = aRange->aEnd.Col(); - SCCOL nColStart = aRange->aStart.Col(); - SCROW nRowStart = aRange->aStart.Row(); - SCTAB nTab = aRange->aStart.Tab(); + const ScRange & rRange = rRanges[i]; + SCROW nRow = rRange.aEnd.Row(); + SCCOL nCol = rRange.aEnd.Col(); + SCCOL nColStart = rRange.aStart.Col(); + SCROW nRowStart = rRange.aStart.Row(); + SCTAB nTab = rRange.aStart.Tab(); // temporary fix to workaround slow duplicate entry // conditions, prevent to use a whole row @@ -1899,15 +1896,15 @@ void ScConditionalFormat::UpdateInsertTab( sc::RefUpdateInsertTabContext& rCxt ) for (size_t i = 0, n = maRanges.size(); i < n; ++i) { // We assume that the start and end sheet indices are equal. - ScRange* pRange = maRanges[i]; - SCTAB nTab = pRange->aStart.Tab(); + ScRange & rRange = maRanges[i]; + SCTAB nTab = rRange.aStart.Tab(); if (nTab < rCxt.mnInsertPos) // Unaffected. continue; - pRange->aStart.IncTab(rCxt.mnSheets); - pRange->aEnd.IncTab(rCxt.mnSheets); + rRange.aStart.IncTab(rCxt.mnSheets); + rRange.aEnd.IncTab(rCxt.mnSheets); } for (auto it = maEntries.cbegin(); it != maEntries.cend(); ++it) @@ -1919,8 +1916,8 @@ void ScConditionalFormat::UpdateDeleteTab( sc::RefUpdateDeleteTabContext& rCxt ) for (size_t i = 0, n = maRanges.size(); i < n; ++i) { // We assume that the start and end sheet indices are equal. - ScRange* pRange = maRanges[i]; - SCTAB nTab = pRange->aStart.Tab(); + ScRange & rRange = maRanges[i]; + SCTAB nTab = rRange.aStart.Tab(); if (nTab < rCxt.mnDeletePos) // Left of the deleted sheet(s). Unaffected. @@ -1929,14 +1926,14 @@ void ScConditionalFormat::UpdateDeleteTab( sc::RefUpdateDeleteTabContext& rCxt ) if (nTab <= rCxt.mnDeletePos+rCxt.mnSheets-1) { // On the deleted sheet(s). - pRange->aStart.SetTab(-1); - pRange->aEnd.SetTab(-1); + rRange.aStart.SetTab(-1); + rRange.aEnd.SetTab(-1); continue; } // Right of the deleted sheet(s). Adjust the sheet indices. - pRange->aStart.IncTab(-1*rCxt.mnSheets); - pRange->aEnd.IncTab(-1*rCxt.mnSheets); + rRange.aStart.IncTab(-1*rCxt.mnSheets); + rRange.aEnd.IncTab(-1*rCxt.mnSheets); } for (auto it = maEntries.cbegin(); it != maEntries.cend(); ++it) @@ -1950,8 +1947,8 @@ void ScConditionalFormat::UpdateMoveTab( sc::RefUpdateMoveTabContext& rCxt ) SCTAB nMaxTab = std::max<SCTAB>(rCxt.mnOldPos, rCxt.mnNewPos); for(size_t i = 0; i < n; ++i) { - ScRange* pRange = maRanges[i]; - SCTAB nTab = pRange->aStart.Tab(); + ScRange & rRange = maRanges[i]; + SCTAB nTab = rRange.aStart.Tab(); if(nTab < nMinTab || nTab > nMaxTab) { continue; @@ -1959,20 +1956,20 @@ void ScConditionalFormat::UpdateMoveTab( sc::RefUpdateMoveTabContext& rCxt ) if (nTab == rCxt.mnOldPos) { - pRange->aStart.SetTab(rCxt.mnNewPos); - pRange->aEnd.SetTab(rCxt.mnNewPos); + rRange.aStart.SetTab(rCxt.mnNewPos); + rRange.aEnd.SetTab(rCxt.mnNewPos); continue; } if (rCxt.mnNewPos < rCxt.mnOldPos) { - pRange->aStart.IncTab(); - pRange->aEnd.IncTab(); + rRange.aStart.IncTab(); + rRange.aEnd.IncTab(); } else { - pRange->aStart.IncTab(-1); - pRange->aEnd.IncTab(-1); + rRange.aStart.IncTab(-1); + rRange.aEnd.IncTab(-1); } } @@ -1985,7 +1982,7 @@ void ScConditionalFormat::DeleteArea( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCR if (maRanges.empty()) return; - SCTAB nTab = maRanges[0]->aStart.Tab(); + SCTAB nTab = maRanges[0].aStart.Tab(); maRanges.DeleteArea( nCol1, nRow1, nTab, nCol2, nRow2, nTab ); } @@ -2204,8 +2201,7 @@ ScRangeList ScConditionalFormatList::GetCombinedRange() const const ScRangeList& rRange = itr->GetRange(); for (size_t i = 0, n = rRange.size(); i < n; ++i) { - if (rRange[i]) - aRange.Join(*rRange[i]); + aRange.Join(rRange[i]); } } return aRange; @@ -2228,7 +2224,7 @@ void ScConditionalFormatList::AddToDocument(ScDocument* pDoc) const if (rRange.empty()) continue; - SCTAB nTab = rRange.front()->aStart.Tab(); + SCTAB nTab = rRange.front().aStart.Tab(); pDoc->AddCondFormatData(rRange, nTab, itr->GetKey()); } } diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx index b4f300b352b3..ff79d99e347e 100644 --- a/sc/source/core/data/documen3.cxx +++ b/sc/source/core/data/documen3.cxx @@ -824,8 +824,8 @@ void ScDocument::CopyScenario( SCTAB nSrcTab, SCTAB nDestTab, bool bNewScenario bool bTouched = false; for ( size_t nR=0, nRangeCount = aRanges.size(); nR < nRangeCount && !bTouched; nR++ ) { - const ScRange* pRange = aRanges[ nR ]; - if ( maTabs[nTab]->HasScenarioRange( *pRange ) ) + const ScRange& rRange = aRanges[ nR ]; + if ( maTabs[nTab]->HasScenarioRange( rRange ) ) bTouched = true; } if (bTouched) @@ -1117,7 +1117,7 @@ void ScDocument::UpdateTranspose( const ScAddress& rDestPos, ScDocument* pClipDo ScRange aSource; ScClipParam& rClipParam = GetClipParam(); if (!rClipParam.maRanges.empty()) - aSource = *rClipParam.maRanges.front(); + aSource = rClipParam.maRanges.front(); ScAddress aDest = rDestPos; SCTAB nClipTab = 0; diff --git a/sc/source/core/data/documen5.cxx b/sc/source/core/data/documen5.cxx index f92b74087450..bb46fe857fef 100644 --- a/sc/source/core/data/documen5.cxx +++ b/sc/source/core/data/documen5.cxx @@ -137,8 +137,7 @@ void ScDocument::UpdateChartArea( const OUString& rChartName, const ScRange& rNewArea, bool bColHeaders, bool bRowHeaders, bool bAdd ) { - ScRangeListRef aRLR( new ScRangeList ); - aRLR->Append( rNewArea ); + ScRangeListRef aRLR( new ScRangeList(rNewArea) ); UpdateChartArea( rChartName, aRLR, bColHeaders, bRowHeaders, bAdd ); } @@ -295,7 +294,7 @@ void ScDocument::UpdateChartArea( const OUString& rChartName, aNewRanges->Parse( aRangesStr, this ); for ( size_t nAdd = 0, nAddCount = rNewList->size(); nAdd < nAddCount; ++nAdd ) - aNewRanges->Append( *(*rNewList)[nAdd] ); + aNewRanges->push_back( (*rNewList)[nAdd] ); } else { @@ -388,7 +387,7 @@ void ScDocument::RestoreChartListener( const OUString& rName ) ScRange aRange; ScAddress::Details aDetails(GetAddressConvention(), 0, 0); if ( aRange.ParseAny( aRepresentations[i], this, aDetails ) & ScRefFlags::VALID ) - aRanges->Append( aRange ); + aRanges->push_back( aRange ); } pChartListenerCollection->ChangeListening( rName, aRanges ); @@ -414,13 +413,13 @@ void ScDocument::UpdateChartRef( UpdateRefMode eUpdateRefMode, bool bDataChanged = false; for ( size_t i = 0, nListSize = aRLR->size(); i < nListSize; ++i ) { - ScRange* pR = (*aRLR)[i]; - SCCOL theCol1 = pR->aStart.Col(); - SCROW theRow1 = pR->aStart.Row(); - SCTAB theTab1 = pR->aStart.Tab(); - SCCOL theCol2 = pR->aEnd.Col(); - SCROW theRow2 = pR->aEnd.Row(); - SCTAB theTab2 = pR->aEnd.Tab(); + ScRange& rRange = (*aRLR)[i]; + SCCOL theCol1 = rRange.aStart.Col(); + SCROW theRow1 = rRange.aStart.Row(); + SCTAB theTab1 = rRange.aStart.Tab(); + SCCOL theCol2 = rRange.aEnd.Col(); + SCROW theRow2 = rRange.aEnd.Row(); + SCTAB theTab2 = rRange.aEnd.Tab(); ScRefUpdateRes eRes = ScRefUpdate::Update( this, eUpdateRefMode, nCol1,nRow1,nTab1, nCol2,nRow2,nTab2, @@ -430,24 +429,24 @@ void ScDocument::UpdateChartRef( UpdateRefMode eUpdateRefMode, if ( eRes != UR_NOTHING ) { bChanged = true; - aNewRLR->Append( ScRange( + aNewRLR->push_back( ScRange( theCol1, theRow1, theTab1, theCol2, theRow2, theTab2 )); if ( eUpdateRefMode == URM_INSDEL && !bDataChanged && (eRes == UR_INVALID || - ((pR->aEnd.Col() - pR->aStart.Col() + ((rRange.aEnd.Col() - rRange.aStart.Col() != theCol2 - theCol1) - || (pR->aEnd.Row() - pR->aStart.Row() + || (rRange.aEnd.Row() - rRange.aStart.Row() != theRow2 - theRow1) - || (pR->aEnd.Tab() - pR->aStart.Tab() + || (rRange.aEnd.Tab() - rRange.aStart.Tab() != theTab2 - theTab1))) ) { bDataChanged = true; } } else - aNewRLR->Append( *pR ); + aNewRLR->push_back( rRange ); } if ( bChanged ) { diff --git a/sc/source/core/data/documen6.cxx b/sc/source/core/data/documen6.cxx index 0a882e31857c..d4b8a41db979 100644 --- a/sc/source/core/data/documen6.cxx +++ b/sc/source/core/data/documen6.cxx @@ -191,7 +191,7 @@ SvtScriptType ScDocument::GetRangeScriptType( const ScRangeList& rRanges ) sc::ColumnSpanSet aSet(false); for (size_t i = 0, n = rRanges.size(); i < n; ++i) { - const ScRange& rRange = *rRanges[i]; + const ScRange& rRange = rRanges[i]; SCTAB nTab = rRange.aStart.Tab(); SCROW nRow1 = rRange.aStart.Row(); SCROW nRow2 = rRange.aEnd.Row(); diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx index 7ebdb404d7e8..aa1ef7129532 100644 --- a/sc/source/core/data/document.cxx +++ b/sc/source/core/data/document.cxx @@ -1151,7 +1151,7 @@ void ScDocument::LimitChartIfAll( ScRangeListRef& rRangeList ) { for ( size_t i = 0, nCount = rRangeList->size(); i < nCount; i++ ) { - ScRange aRange( *(*rRangeList)[i] ); + ScRange aRange( (*rRangeList)[i] ); if ( ( aRange.aStart.Col() == 0 && aRange.aEnd.Col() == MAXCOL ) || ( aRange.aStart.Row() == 0 && aRange.aEnd.Row() == MAXROW ) ) { @@ -1167,7 +1167,7 @@ void ScDocument::LimitChartIfAll( ScRangeListRef& rRangeList ) aRange.aEnd.SetCol( nEndCol ); aRange.aEnd.SetRow( nEndRow ); } - aNew->Append(aRange); + aNew->push_back(aRange); } } else @@ -2330,7 +2330,7 @@ void ScDocument::CopyTabToClip(SCCOL nCol1, SCROW nRow1, ScClipParam& rClipParam = pClipDoc->GetClipParam(); pClipDoc->aDocName = aDocName; rClipParam.maRanges.RemoveAll(); - rClipParam.maRanges.Append(ScRange(nCol1, nRow1, 0, nCol2, nRow2, 0)); + rClipParam.maRanges.push_back(ScRange(nCol1, nRow1, 0, nCol2, nRow2, 0)); pClipDoc->ResetClip( this, nTab ); sc::CopyToClipContext aCxt(*pClipDoc, false); @@ -2748,7 +2748,7 @@ void ScDocument::CopyNonFilteredFromClip( SCROW nSourceRow = rClipStartRow; SCROW nSourceEnd = 0; if (!rCxt.getClipDoc()->GetClipParam().maRanges.empty()) - nSourceEnd = rCxt.getClipDoc()->GetClipParam().maRanges.front()->aEnd.Row(); + nSourceEnd = rCxt.getClipDoc()->GetClipParam().maRanges.front().aEnd.Row(); SCROW nDestRow = nRow1; while ( nSourceRow <= nSourceEnd && nDestRow <= nRow2 ) @@ -2885,7 +2885,7 @@ void ScDocument::CopyFromClip( const ScRange& rDestRange, const ScMarkData& rMar ScRangeList aLocalRangeList; if (!pDestRanges) { - aLocalRangeList.Append( rDestRange); + aLocalRangeList.push_back( rDestRange); pDestRanges = &aLocalRangeList; } @@ -2898,11 +2898,11 @@ void ScDocument::CopyFromClip( const ScRange& rDestRange, const ScMarkData& rMar SCROW nClipEndRow = aClipRange.aEnd.Row(); for ( size_t nRange = 0; nRange < pDestRanges->size(); ++nRange ) { - const ScRange* pRange = (*pDestRanges)[nRange]; - SCCOL nCol1 = pRange->aStart.Col(); - SCROW nRow1 = pRange->aStart.Row(); - SCCOL nCol2 = pRange->aEnd.Col(); - SCROW nRow2 = pRange->aEnd.Row(); + const ScRange & rRange = (*pDestRanges)[nRange]; + SCCOL nCol1 = rRange.aStart.Col(); + SCROW nRow1 = rRange.aStart.Row(); + SCCOL nCol2 = rRange.aEnd.Col(); + SCROW nRow2 = rRange.aEnd.Row(); if (bSkipAttrForEmpty) { @@ -3067,12 +3067,12 @@ void ScDocument::CopyMultiRangeFromClip( for (size_t i = 0, n = rClipParam.maRanges.size(); i < n; ++i) { - ScRange* p = rClipParam.maRanges[i]; + const ScRange & rRange = rClipParam.maRanges[i]; - SCROW nRowCount = p->aEnd.Row() - p->aStart.Row() + 1; - SCCOL nDx = static_cast<SCCOL>(nCol1 - p->aStart.Col()); - SCROW nDy = static_cast<SCROW>(nRow1 - p->aStart.Row()); - SCCOL nCol2 = nCol1 + p->aEnd.Col() - p->aStart.Col(); + SCROW nRowCount = rRange.aEnd.Row() - rRange.aStart.Row() + 1; + SCCOL nDx = static_cast<SCCOL>(nCol1 - rRange.aStart.Col()); + SCROW nDy = static_cast<SCROW>(nRow1 - rRange.aStart.Row()); + SCCOL nCol2 = nCol1 + rRange.aEnd.Col() - rRange.aStart.Col(); SCROW nEndRow = nRow1 + nRowCount - 1; CopyBlockFromClip(aCxt, nCol1, nRow1, nCol2, nEndRow, rMark, nDx, nDy); @@ -3084,7 +3084,7 @@ void ScDocument::CopyMultiRangeFromClip( nRow1 += nRowCount; break; case ScClipParam::Column: - nCol1 += p->aEnd.Col() - p->aStart.Col() + 1; + nCol1 += rRange.aEnd.Col() - rRange.aStart.Col() + 1; break; default: ; @@ -3119,7 +3119,7 @@ void ScDocument::SetClipArea( const ScRange& rArea, bool bCut ) { ScClipParam& rClipParam = GetClipParam(); rClipParam.maRanges.RemoveAll(); - rClipParam.maRanges.Append(rArea); + rClipParam.maRanges.push_back(rArea); rClipParam.mbCutMode = bCut; } else @@ -3141,22 +3141,22 @@ void ScDocument::GetClipArea(SCCOL& nClipX, SCROW& nClipY, bool bIncludeFiltered // No clip range. Bail out. return; - ScRange* p = rClipRanges.front(); - SCCOL nStartCol = p->aStart.Col(); - SCCOL nEndCol = p->aEnd.Col(); - SCROW nStartRow = p->aStart.Row(); - SCROW nEndRow = p->aEnd.Row(); + ScRange & rRange = rClipRanges.front(); + SCCOL nStartCol = rRange.aStart.Col(); + SCCOL nEndCol = rRange.aEnd.Col(); + SCROW nStartRow = rRange.aStart.Row(); + SCROW nEndRow = rRange.aEnd.Row(); for ( size_t i = 1, n = rClipRanges.size(); i < n; ++i ) { - p = rClipRanges[ i ]; - if (p->aStart.Col() < nStartCol) - nStartCol = p->aStart.Col(); - if (p->aStart.Row() < nStartRow) - nStartRow = p->aStart.Row(); - if (p->aEnd.Col() > nEndCol) - nEndCol = p->aEnd.Col(); - if (p->aEnd.Row() < nEndRow) - nEndRow = p->aEnd.Row(); + rRange = rClipRanges[ i ]; + if (rRange.aStart.Col() < nStartCol) + nStartCol = rRange.aStart.Col(); + if (rRange.aStart.Row() < nStartRow) + nStartRow = rRange.aStart.Row(); + if (rRange.aEnd.Col() > nEndCol) + nEndCol = rRange.aEnd.Col(); + if (rRange.aEnd.Row() < nEndRow) + nEndRow = rRange.aEnd.Row(); } nClipX = nEndCol - nStartCol; @@ -3187,8 +3187,8 @@ void ScDocument::GetClipStart(SCCOL& nClipX, SCROW& nClipY) ScRangeList& rClipRanges = GetClipParam().maRanges; if ( !rClipRanges.empty() ) { - nClipX = rClipRanges.front()->aStart.Col(); - nClipY = rClipRanges.front()->aStart.Row(); + nClipX = rClipRanges.front().aStart.Col(); + nClipY = rClipRanges.front().aStart.Row(); } } else @@ -3210,8 +3210,8 @@ bool ScDocument::HasClipFilteredRows() for ( size_t i = 0, n = rClipRanges.size(); i < n; ++i ) { - ScRange* p = rClipRanges[ i ]; - bool bAnswer = maTabs[nCountTab]->HasFilteredRows(p->aStart.Row(), p->aEnd.Row()); + ScRange & rRange = rClipRanges[ i ]; + bool bAnswer = maTabs[nCountTab]->HasFilteredRows(rRange.aStart.Row(), rRange.aEnd.Row()); if (bAnswer) return true; } @@ -3910,7 +3910,7 @@ void ScDocument::InterpretDirtyCells( const ScRangeList& rRanges ) for (size_t nPos=0, nRangeCount = rRanges.size(); nPos < nRangeCount; nPos++) { - const ScRange& rRange = *rRanges[nPos]; + const ScRange& rRange = rRanges[nPos]; for (SCTAB nTab = rRange.aStart.Tab(); nTab <= rRange.aEnd.Tab(); ++nTab) { ScTable* pTab = FetchTable(nTab); @@ -5104,16 +5104,16 @@ void ScDocument::GetSelectionFrame( const ScMarkData& rMark, bool bMultipleRows = false, bMultipleCols = false; for( size_t nRangeIdx = 0; nRangeIdx < nRangeCount; ++nRangeIdx ) { - const ScRange* pRange = aRangeList[ nRangeIdx ]; - bMultipleRows = ( bMultipleRows || ( pRange->aStart.Row() != pRange->aEnd.Row() ) ); - bMultipleCols = ( bMultipleCols || ( pRange->aStart.Col() != pRange->aEnd.Col() ) ); + const ScRange rRange = aRangeList[ nRangeIdx ]; + bMultipleRows = ( bMultipleRows || ( rRange.aStart.Row() != rRange.aEnd.Row() ) ); + bMultipleCols = ( bMultipleCols || ( rRange.aStart.Col() != rRange.aEnd.Col() ) ); SCTAB nMax = static_cast<SCTAB>(maTabs.size()); ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end(); for (; itr != itrEnd && *itr < nMax; ++itr) if (maTabs[*itr]) maTabs[*itr]->MergeBlockFrame( &rLineOuter, &rLineInner, aFlags, - pRange->aStart.Col(), pRange->aStart.Row(), - pRange->aEnd.Col(), pRange->aEnd.Row() ); + rRange.aStart.Col(), rRange.aStart.Row(), + rRange.aEnd.Col(), rRange.aEnd.Row() ); } rLineInner.EnableHor( bMultipleRows ); rLineInner.EnableVer( bMultipleCols ); @@ -5725,10 +5725,10 @@ void ScDocument::ApplySelectionFrame( const ScMarkData& rMark, { for ( size_t j=0; j < nRangeCount; j++ ) { - ScRange aRange = *aRangeList[ j ]; + const ScRange & rRange = aRangeList[ j ]; maTabs[*itr]->ApplyBlockFrame( rLineOuter, pLineInner, - aRange.aStart.Col(), aRange.aStart.Row(), - aRange.aEnd.Col(), aRange.aEnd.Row() ); + rRange.aStart.Col(), rRange.aStart.Row(), + rRange.aEnd.Col(), rRange.aEnd.Row() ); } } } @@ -5780,34 +5780,34 @@ void ScDocument::ApplySelectionFrame( const ScMarkData& rMark, size_t nEnvelopeRangeCount = rRangeListTopEnvelope.size(); for ( size_t j=0; j < nEnvelopeRangeCount; j++ ) { - const ScRange* pRange = rRangeListTopEnvelope[ j ]; + const ScRange & rRange = rRangeListTopEnvelope[ j ]; maTabs[*itr1]->ApplyBlockFrame( aTop, &aTopInfo, - pRange->aStart.Col(), pRange->aStart.Row(), - pRange->aEnd.Col(), pRange->aEnd.Row() ); + rRange.aStart.Col(), rRange.aStart.Row(), + rRange.aEnd.Col(), rRange.aEnd.Row() ); } nEnvelopeRangeCount = rRangeListBottomEnvelope.size(); for ( size_t j=0; j < nEnvelopeRangeCount; j++ ) { - const ScRange* pRange = rRangeListBottomEnvelope[ j ]; + const ScRange & rRange = rRangeListBottomEnvelope[ j ]; maTabs[*itr1]->ApplyBlockFrame( aBottom, &aBottomInfo, - pRange->aStart.Col(), pRange->aStart.Row(), - pRange->aEnd.Col(), pRange->aEnd.Row() ); + rRange.aStart.Col(), rRange.aStart.Row(), + rRange.aEnd.Col(), rRange.aEnd.Row() ); } nEnvelopeRangeCount = rRangeListLeftEnvelope.size(); for ( size_t j=0; j < nEnvelopeRangeCount; j++ ) { - const ScRange* pRange = rRangeListLeftEnvelope[ j ]; + const ScRange & rRange = rRangeListLeftEnvelope[ j ]; maTabs[*itr1]->ApplyBlockFrame( aLeft, &aLeftInfo, - pRange->aStart.Col(), pRange->aStart.Row(), - pRange->aEnd.Col(), pRange->aEnd.Row() ); + rRange.aStart.Col(), rRange.aStart.Row(), + rRange.aEnd.Col(), rRange.aEnd.Row() ); } nEnvelopeRangeCount = rRangeListRightEnvelope.size(); for ( size_t j=0; j < nEnvelopeRangeCount; j++ ) { - const ScRange* pRange = rRangeListRightEnvelope[ j ]; + const ScRange & rRange = rRangeListRightEnvelope[ j ]; maTabs[*itr1]->ApplyBlockFrame( aRight, &aRightInfo, - pRange->aStart.Col(), pRange->aStart.Row(), - pRange->aEnd.Col(), pRange->aEnd.Row() ); + rRange.aStart.Col(), rRange.aStart.Row(), + rRange.aEnd.Col(), rRange.aEnd.Row() ); } } } @@ -5892,9 +5892,8 @@ void ScDocument::DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& rMark.FillRangeListWithMarks( &aRangeList, false); for (size_t i = 0; i < aRangeList.size(); ++i) { - const ScRange* pRange = aRangeList[i]; - if (pRange) - EndListeningIntersectedGroups( aCxt, *pRange, &aGroupPos); + const ScRange & rRange = aRangeList[i]; + EndListeningIntersectedGroups( aCxt, rRange, &aGroupPos); } aCxt.purgeEmptyBroadcasters(); } @@ -5920,9 +5919,7 @@ void ScDocument::DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& rMark.FillRangeListWithMarks( &aRangeList, false); for (size_t i = 0; i < aRangeList.size(); ++i) { - const ScRange* pRange = aRangeList[i]; - if (pRange) - SetDirty( *pRange, true); + SetDirty( aRangeList[i], true); } //Notify listeners on top and bottom of the group that has been split for (size_t i = 0; i < aGroupPos.size(); ++i) { @@ -5953,10 +5950,10 @@ void ScDocument::DeleteSelectionTab( rMark.FillRangeListWithMarks( &aRangeList, false); for (size_t i = 0; i < aRangeList.size(); ++i) { - const ScRange* pRange = aRangeList[i]; - if (pRange && pRange->aStart.Tab() <= nTab && nTab <= pRange->aEnd.Tab()) + const ScRange & rRange = aRangeList[i]; + if (rRange.aStart.Tab() <= nTab && nTab <= rRange.aEnd.Tab()) { - ScRange aRange( *pRange); + ScRange aRange( rRange); aRange.aStart.SetTab( nTab); aRange.aEnd.SetTab( nTab); EndListeningIntersectedGroups( aCxt, aRange, &aGroupPos); @@ -5982,10 +5979,10 @@ void ScDocument::DeleteSelectionTab( rMark.FillRangeListWithMarks( &aRangeList, false); for (size_t i = 0; i < aRangeList.size(); ++i) { - const ScRange* pRange = aRangeList[i]; - if (pRange && pRange->aStart.Tab() <= nTab && nTab <= pRange->aEnd.Tab()) + const ScRange & rRange = aRangeList[i]; + if (rRange.aStart.Tab() <= nTab && nTab <= rRange.aEnd.Tab()) { - ScRange aRange( *pRange); + ScRange aRange( rRange); aRange.aStart.SetTab( nTab); aRange.aEnd.SetTab( nTab); SetDirty( aRange, true); @@ -6575,9 +6572,9 @@ void ScDocument::ForgetNoteCaptions( const ScRangeList& rRanges, bool bPreserveD { for (size_t i = 0, n = rRanges.size(); i < n; ++i) { - const ScRange* p = rRanges[i]; - const ScAddress& s = p->aStart; - const ScAddress& e = p->aEnd; + const ScRange & rRange = rRanges[i]; + const ScAddress& s = rRange.aStart; + const ScAddress& e = rRange.aEnd; for (SCTAB nTab = s.Tab(); nTab <= e.Tab(); ++nTab) { ScTable* pTab = FetchTable(nTab); @@ -6598,11 +6595,11 @@ CommentCaptionState ScDocument::GetAllNoteCaptionsState( const ScRangeList& rRan for (size_t i = 0, n = rRanges.size(); i < n; ++i) { - const ScRange* pRange = rRanges[i]; + const ScRange & rRange = rRanges[i]; - for( SCTAB nTab = pRange->aStart.Tab(); nTab <= pRange->aEnd.Tab(); ++nTab ) + for( SCTAB nTab = rRange.aStart.Tab(); nTab <= rRange.aEnd.Tab(); ++nTab ) { - aState = maTabs[nTab]->GetAllNoteCaptionsState( *pRange, aNotes ); + aState = maTabs[nTab]->GetAllNoteCaptionsState( rRange, aNotes ); if (aState == CommentCaptionState::MIXED) return aState; @@ -6706,14 +6703,14 @@ void ScDocument::GetAllNoteEntries( SCTAB nTab, std::vector<sc::NoteEntry>& rNot return pTab->GetAllNoteEntries( rNotes ); } -void ScDocument::GetNotesInRange( const ScRangeList& rRange, std::vector<sc::NoteEntry>& rNotes ) const +void ScDocument::GetNotesInRange( const ScRangeList& rRangeList, std::vector<sc::NoteEntry>& rNotes ) const { - for( size_t i = 0; i < rRange.size(); ++i) + for( size_t i = 0; i < rRangeList.size(); ++i) { - const ScRange* pRange = rRange[i]; - for( SCTAB nTab = pRange->aStart.Tab(); nTab <= pRange->aEnd.Tab(); ++nTab ) + const ScRange & rRange = rRangeList[i]; + for( SCTAB nTab = rRange.aStart.Tab(); nTab <= rRange.aEnd.Tab(); ++nTab ) { - maTabs[nTab]->GetNotesInRange( *pRange, rNotes ); + maTabs[nTab]->GetNotesInRange( rRange, rNotes ); } } } @@ -6723,14 +6720,14 @@ void ScDocument::GetUnprotectedCells( ScRangeList& rRangeList, SCTAB nTab ) cons maTabs[nTab]->GetUnprotectedCells( rRangeList ); } -bool ScDocument::ContainsNotesInRange( const ScRangeList& rRange ) const +bool ScDocument::ContainsNotesInRange( const ScRangeList& rRangeList ) const { - for( size_t i = 0; i < rRange.size(); ++i) + for( size_t i = 0; i < rRangeList.size(); ++i) { - const ScRange* pRange = rRange[i]; - for( SCTAB nTab = pRange->aStart.Tab(); nTab < pRange->aEnd.Tab(); ++nTab ) + const ScRange & rRange = rRangeList[i]; + for( SCTAB nTab = rRange.aStart.Tab(); nTab < rRange.aEnd.Tab(); ++nTab ) { - bool bContainsNote = maTabs[nTab]->ContainsNotesInRange( *pRange ); + bool bContainsNote = maTabs[nTab]->ContainsNotesInRange( rRange ); if(bContainsNote) return true; } diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx index d15cd9d84108..341444525220 100644 --- a/sc/source/core/data/drwlayer.cxx +++ b/sc/source/core/data/drwlayer.cxx @@ -1426,8 +1426,8 @@ static bool lcl_IsAllInRange( const ::std::vector< ScRangeList >& rRangesVector, const ScRangeList& rRanges = *aIt; for ( size_t i = 0, nCount = rRanges.size(); i < nCount; i++ ) { - ScRange aRange = *rRanges[ i ]; - if ( !rClipRange.In( aRange ) ) + const ScRange & rRange = rRanges[ i ]; + if ( !rClipRange.In( rRange ) ) { return false; // at least one range is not valid } @@ -1448,13 +1448,13 @@ static bool lcl_MoveRanges( ::std::vector< ScRangeList >& rRangesVector, const S ScRangeList& rRanges = *aIt; for ( size_t i = 0, nCount = rRanges.size(); i < nCount; i++ ) { - ScRange* pRange = rRanges[ i ]; - if ( rSourceRange.In( *pRange ) ) + ScRange aRange = rRanges[ i ]; + if ( rSourceRange.In( aRange ) ) { SCCOL nDiffX = rDestPos.Col() - rSourceRange.aStart.Col(); SCROW nDiffY = rDestPos.Row() - rSourceRange.aStart.Row(); SCTAB nDiffZ = rDestPos.Tab() - rSourceRange.aStart.Tab(); - if (!pRange->Move( nDiffX, nDiffY, nDiffZ, aErrorRange)) + if (!aRange.Move( nDiffX, nDiffY, nDiffZ, aErrorRange)) { assert(!"can't move range"); } diff --git a/sc/source/core/data/formulacell.cxx b/sc/source/core/data/formulacell.cxx index ebaefc38f7d3..04cfe1c0bb3e 100644 --- a/sc/source/core/data/formulacell.cxx +++ b/sc/source/core/data/formulacell.cxx @@ -4291,12 +4291,12 @@ struct ScDependantsCalculator for (size_t i = 0; i < aRangeList.size(); ++i) { - const ScRange* pRange = aRangeList[i]; - assert(pRange->aStart.Tab() == pRange->aEnd.Tab()); - for (auto nCol = pRange->aStart.Col(); nCol <= pRange->aEnd.Col(); nCol++) + const ScRange & rRange = aRangeList[i]; + assert(rRange.aStart.Tab() == rRange.aEnd.Tab()); + for (auto nCol = rRange.aStart.Col(); nCol <= rRange.aEnd.Col(); nCol++) { - if (!mrDoc.HandleRefArrayForParallelism(ScAddress(nCol, pRange->aStart.Row(), pRange->aStart.Tab()), - pRange->aEnd.Row() - pRange->aStart.Row() + 1)) + if (!mrDoc.HandleRefArrayForParallelism(ScAddress(nCol, rRange.aStart.Row(), rRange.aStart.Tab()), + rRange.aEnd.Row() - rRange.aStart.Row() + 1)) return false; } } diff --git a/sc/source/core/data/markdata.cxx b/sc/source/core/data/markdata.cxx index 73a22ae25760..ecd2b2ecaf13 100644 --- a/sc/source/core/data/markdata.cxx +++ b/sc/source/core/data/markdata.cxx @@ -341,7 +341,7 @@ void ScMarkData::MarkFromRangeList( const ScRangeList& rList, bool bReset ) size_t nCount = rList.size(); if ( nCount == 1 && !bMarked && !bMultiMarked ) { - const ScRange& rRange = *rList[ 0 ]; + const ScRange& rRange = rList[ 0 ]; SetMarkArea( rRange ); SelectTable( rRange.aStart.Tab(), true ); } @@ -349,7 +349,7 @@ void ScMarkData::MarkFromRangeList( const ScRangeList& rList, bool bReset ) { for (size_t i=0; i < nCount; i++) { - const ScRange& rRange = *rList[ i ]; + const ScRange& rRange = rList[ i ]; SetMultiMarkArea( rRange ); SelectTable( rRange.aStart.Tab(), true ); } @@ -405,13 +405,13 @@ void ScMarkData::FillRangeListWithMarks( ScRangeList* pList, bool bClear, SCTAB if ( bMarked ) { if (nForTab < 0) - pList->Append( aMarkRange ); + pList->push_back( aMarkRange ); else { ScRange aRange( aMarkRange ); aRange.aStart.SetTab( nForTab ); aRange.aEnd.SetTab( nForTab ); - pList->Append( aRange ); + pList->push_back( aRange ); } } } @@ -428,10 +428,10 @@ void ScMarkData::ExtendRangeListTables( ScRangeList* pList ) const for (; it != maTabMarked.end(); ++it) for ( size_t i=0, nCount = aOldList.size(); i<nCount; i++) { - ScRange aRange = *aOldList[ i ]; + ScRange aRange = aOldList[ i ]; aRange.aStart.SetTab(*it); aRange.aEnd.SetTab(*it); - pList->Append( aRange ); + pList->push_back( aRange ); } } @@ -459,7 +459,7 @@ std::vector<sc::ColRowSpan> ScMarkData::GetMarkedRowSpans() const for (size_t i = 0, n = aRanges.size(); i < n; ++i) { - const ScRange& r = *aRanges[i]; + const ScRange& r = aRanges[i]; itPos = aSpans.insert(itPos, r.aStart.Row(), r.aEnd.Row()+1, true).first; } @@ -706,7 +706,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange ) ScRange aAddRange(nCol - 1, nTop, aMultiRange.aStart.Tab(), nCol - 1, nBottom, aMultiRange.aStart.Tab()); lcl_AddRanges( rRange, aAddRange ); // Left envelope - aLeftEnvelope.Append( aAddRange ); + aLeftEnvelope.push_back( aAddRange ); } else if( nCol > nStartCol ) { @@ -728,7 +728,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange ) ScRange aAddRange( nCol - 1, nTop1, aMultiRange.aStart.Tab(), nCol - 1, nBottom1, aMultiRange.aStart.Tab() ); lcl_AddRanges( rRange, aAddRange ); // Left envelope - aLeftEnvelope.Append( aAddRange ); + aLeftEnvelope.push_back( aAddRange ); nTop1 = ++nBottom1; } } @@ -747,7 +747,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange ) ScRange aAddRange( nCol, nTopPrev, aMultiRange.aStart.Tab(), nCol, nBottomPrev, aMultiRange.aStart.Tab()); lcl_AddRanges( rRange, aAddRange ); // Right envelope - aRightEnvelope.Append( aAddRange ); + aRightEnvelope.push_back( aAddRange ); nTopPrev = nBottomPrev = (nBottom + 1); } else @@ -755,7 +755,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange ) ScRange aAddRange( nCol, nTopPrev, aMultiRange.aStart.Tab(), nCol, nBottomPrev, aMultiRange.aStart.Tab()); lcl_AddRanges( rRange, aAddRange ); // Right envelope - aRightEnvelope.Append( aAddRange ); + aRightEnvelope.push_back( aAddRange ); nTopPrev = ++nBottomPrev; } } @@ -795,7 +795,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange ) ScRange aAddRange(nCol, nTopPrev, aMultiRange.aStart.Tab(), nCol, nBottomPrev, aMultiRange.aStart.Tab()); lcl_AddRanges( rRange, aAddRange ); // Right envelope - aRightEnvelope.Append( aAddRange ); + aRightEnvelope.push_back( aAddRange ); nTopPrev = ++nBottomPrev; } else @@ -820,7 +820,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange ) ScRange aAddRange(nCol, nTopPrev, aMultiRange.aStart.Tab(), nCol, nBottomPrev, aMultiRange.aStart.Tab()); lcl_AddRanges( rRange, aAddRange ); // Right envelope - aRightEnvelope.Append( aAddRange ); + aRightEnvelope.push_back( aAddRange ); nTopPrev = ++nBottomPrev; } else @@ -844,7 +844,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange ) if( !rKV.second.getRangeData( nStart, aRange ) ) break; if( aRange.mbValue ) // is marked - aTopEnvelope.Append( ScRange( aRange.mnCol1, rKV.first, aMultiRange.aStart.Tab(), + aTopEnvelope.push_back( ScRange( aRange.mnCol1, rKV.first, aMultiRange.aStart.Tab(), aRange.mnCol2, rKV.first, aMultiRange.aStart.Tab() ) ); nStart = aRange.mnCol2 + 1; } @@ -858,7 +858,7 @@ void ScMarkData::GetSelectionCover( ScRange& rRange ) if( !rKV.second.getRangeData( nStart, aRange ) ) break; if( aRange.mbValue ) // is marked - aBottomEnvelope.Append( ScRange( aRange.mnCol1, rKV.first, aMultiRange.aStart.Tab(), + aBottomEnvelope.push_back( ScRange( aRange.mnCol1, rKV.first, aMultiRange.aStart.Tab(), aRange.mnCol2, rKV.first, aMultiRange.aStart.Tab() ) ); nStart = aRange.mnCol2 + 1; } @@ -878,22 +878,22 @@ void ScMarkData::GetSelectionCover( ScRange& rRange ) // Each envelope will have zero or more ranges for single rectangle selection. if( nCol1 > 0 ) { - aLeftEnvelope.Append( ScRange( nCol1 - 1, nRow1, nTab1, nCol1 - 1, nRow2, nTab2 ) ); + aLeftEnvelope.push_back( ScRange( nCol1 - 1, nRow1, nTab1, nCol1 - 1, nRow2, nTab2 ) ); --nCol1New; } if( nRow1 > 0 ) { - aTopEnvelope.Append( ScRange( nCol1, nRow1 - 1, nTab1, nCol2, nRow1 - 1, nTab2 ) ); + aTopEnvelope.push_back( ScRange( nCol1, nRow1 - 1, nTab1, nCol2, nRow1 - 1, nTab2 ) ); --nRow1New; } if( nCol2 < MAXCOL ) { - aRightEnvelope.Append( ScRange( nCol2 + 1, nRow1, nTab1, nCol2 + 1, nRow2, nTab2 ) ); + aRightEnvelope.push_back( ScRange( nCol2 + 1, nRow1, nTab1, nCol2 + 1, nRow2, nTab2 ) ); ++nCol2New; } if( nRow2 < MAXROW ) { - aBottomEnvelope.Append( ScRange( nCol1, nRow2 + 1, nTab1, nCol2, nRow2 + 1, nTab2 ) ); + aBottomEnvelope.push_back( ScRange( nCol1, nRow2 + 1, nTab1, nCol2, nRow2 + 1, nTab2 ) ); ++nRow2New; } rRange = ScRange( nCol1New, nRow1New, nTab1, nCol2New, nRow2New, nTab2 ); diff --git a/sc/source/core/data/table2.cxx b/sc/source/core/data/table2.cxx index adb40b67a0c0..67e4da17f9c8 100644 --- a/sc/source/core/data/table2.cxx +++ b/sc/source/core/data/table2.cxx @@ -461,10 +461,10 @@ void ScTable::DeleteSelection( InsertDeleteFlags nDelFlag, const ScMarkData& rMa for (size_t i = 0; i < aRangeList.size(); ++i) { - ScRange* pRange = aRangeList[i]; + const ScRange & rRange = aRangeList[i]; - if((nDelFlag & InsertDeleteFlags::ATTRIB) && pRange && pRange->aStart.Tab() == nTab) - mpCondFormatList->DeleteArea( pRange->aStart.Col(), pRange->aStart.Row(), pRange->aEnd.Col(), pRange->aEnd.Row() ); + if((nDelFlag & InsertDeleteFlags::ATTRIB) && rRange.aStart.Tab() == nTab) + mpCondFormatList->DeleteArea( rRange.aStart.Col(), rRange.aStart.Row(), rRange.aEnd.Col(), rRange.aEnd.Row() ); } // Do not set protected cell in a protected sheet @@ -535,9 +535,8 @@ void ScTable::CopyToClip( { for ( size_t i = 0, nListSize = rRanges.size(); i < nListSize; ++i ) { - const ScRange* p = rRanges[ i ]; - if (p) - CopyToClip( rCxt, p->aStart.Col(), p->aStart.Row(), p->aEnd.Col(), p->aEnd.Row(), pTable); + const ScRange & r = rRanges[ i ]; + CopyToClip( rCxt, r.aStart.Col(), r.aStart.Row(), r.aEnd.Col(), r.aEnd.Row(), pTable); } } @@ -579,7 +578,7 @@ bool CheckAndDeduplicateCondFormat(ScDocument* pDocument, ScConditionalFormat* p ScRangeList& rDstRangeList = pOldFormat->GetRangeList(); for (size_t i = 0; i < rNewRangeList.size(); ++i) { - rDstRangeList.Join(*rNewRangeList[i]); + rDstRangeList.Join(rNewRangeList[i]); } pDocument->AddCondFormatData(pOldFormat->GetRange(), nTab, pOldFormat->GetKey()); return true; @@ -1365,8 +1364,8 @@ bool ScTable::HasScenarioRange( const ScRange& rRange ) const { for ( size_t j = 0, n = pList->size(); j < n; j++ ) { - const ScRange* pR = (*pList)[j]; - if ( pR->Intersects( aTabRange ) ) + const ScRange & rR = (*pList)[j]; + if ( rR.Intersects( aTabRange ) ) return true; } } @@ -2430,8 +2429,8 @@ bool ScTable::IsSelectionEditable( const ScMarkData& rMark, { for (size_t i=0, nRange = aRanges.size(); (i < nRange) && bIsEditable; i++ ) { - ScRange aRange = *aRanges[ i ]; - if(pDocument->HasScenarioRange(nScenTab, aRange)) + const ScRange & rRange = aRanges[ i ]; + if(pDocument->HasScenarioRange(nScenTab, rRange)) { ScScenarioFlags nFlags; pDocument->GetScenarioFlags(nScenTab,nFlags); @@ -2459,8 +2458,8 @@ bool ScTable::IsSelectionEditable( const ScMarkData& rMark, rMark.FillRangeListWithMarks( &aRanges, false ); for (size_t i = 0, nRange = aRanges.size(); (i < nRange) && bIsEditable; i++) { - ScRange aRange = *aRanges[ i ]; - if(pDocument->HasScenarioRange(nTab, aRange)) + const ScRange & rRange = aRanges[ i ]; + if(pDocument->HasScenarioRange(nTab, rRange)) { ScScenarioFlags nFlags; pDocument->GetScenarioFlags(nTab,nFlags); @@ -2575,16 +2574,16 @@ void ScTable::ApplyPatternIfNumberformatIncompatible( const ScRange& rRange, } } -void ScTable::AddCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex ) +void ScTable::AddCondFormatData( const ScRangeList& rRangeList, sal_uInt32 nIndex ) { - size_t n = rRange.size(); + size_t n = rRangeList.size(); for(size_t i = 0; i < n; ++i) { - const ScRange* pRange = rRange[i]; - SCCOL nColStart = pRange->aStart.Col(); - SCCOL nColEnd = pRange->aEnd.Col(); - SCROW nRowStart = pRange->aStart.Row(); - SCROW nRowEnd = pRange->aEnd.Row(); + const ScRange & rRange = rRangeList[i]; + SCCOL nColStart = rRange.aStart.Col(); + SCCOL nColEnd = rRange.aEnd.Col(); + SCROW nRowStart = rRange.aStart.Row(); + SCROW nRowEnd = rRange.aEnd.Row(); for(SCCOL nCol = nColStart; nCol <= nColEnd; ++nCol) { aCol[nCol].AddCondFormat(nRowStart, nRowEnd, nIndex); @@ -2592,16 +2591,16 @@ void ScTable::AddCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex ) } } -void ScTable::RemoveCondFormatData( const ScRangeList& rRange, sal_uInt32 nIndex ) +void ScTable::RemoveCondFormatData( const ScRangeList& rRangeList, sal_uInt32 nIndex ) { - size_t n = rRange.size(); + size_t n = rRangeList.size(); for(size_t i = 0; i < n; ++i) { - const ScRange* pRange = rRange[i]; - SCCOL nColStart = pRange->aStart.Col(); - SCCOL nColEnd = pRange->aEnd.Col(); - SCROW nRowStart = pRange->aStart.Row(); - SCROW nRowEnd = pRange->aEnd.Row(); + const ScRange & rRange = rRangeList[i]; + SCCOL nColStart = rRange.aStart.Col(); + SCCOL nColEnd = rRange.aEnd.Col(); + SCROW nRowStart = rRange.aStart.Row(); + SCROW nRowEnd = rRange.aEnd.Row(); for(SCCOL nCol = nColStart; nCol <= nColEnd; ++nCol) { aCol[nCol].RemoveCondFormat(nRowStart, nRowEnd, nIndex); diff --git a/sc/source/core/data/table3.cxx b/sc/source/core/data/table3.cxx index 5d374368228b..217c74d3823d 100644 --- a/sc/source/core/data/table3.cxx +++ b/sc/source/core/data/table3.cxx @@ -1235,7 +1235,7 @@ void ScTable::SortReorderByRowRefUpdate( // could be anywhere in the sorted range after reordering. for (size_t i = 0, n = aTmp.size(); i < n; ++i) { - ScRange aRange = *aTmp[i]; + ScRange aRange = aTmp[i]; if (!aMoveRange.Intersects(aRange)) { // Doesn't overlap with the sorted range at all. diff --git a/sc/source/core/data/table6.cxx b/sc/source/core/data/table6.cxx index 4e0666846cb0..efdb51803935 100644 --- a/sc/source/core/data/table6.cxx +++ b/sc/source/core/data/table6.cxx @@ -842,8 +842,7 @@ bool ScTable::SearchAndReplaceEmptyCells( GetFirstDataPos(nColStart, nRowStart); GetLastDataPos(nColEnd, nRowEnd); - ScRangeList aRanges; - aRanges.Append(ScRange(nColStart, nRowStart, nTab, nColEnd, nRowEnd, nTab)); + ScRangeList aRanges(ScRange(nColStart, nRowStart, nTab, nColEnd, nRowEnd, nTab)); if (rSearchItem.GetSelection()) { @@ -856,23 +855,23 @@ bool ScTable::SearchAndReplaceEmptyCells( rMark.FillRangeListWithMarks(&aMarkedRanges, true); for ( size_t i = 0, n = aMarkedRanges.size(); i < n; ++i ) { - ScRange* p = aMarkedRanges[ i ]; - if (p->aStart.Col() > nColEnd || p->aStart.Row() > nRowEnd || p->aEnd.Col() < nColStart || p->aEnd.Row() < nRowStart) + ScRange & rRange = aMarkedRanges[ i ]; + if (rRange.aStart.Col() > nColEnd || rRange.aStart.Row() > nRowEnd || rRange.aEnd.Col() < nColStart || rRange.aEnd.Row() < nRowStart) // This range is outside the data area. Skip it. continue; // Shrink the range into data area only. - if (p->aStart.Col() < nColStart) - p->aStart.SetCol(nColStart); - if (p->aStart.Row() < nRowStart) - p->aStart.SetRow(nRowStart); + if (rRange.aStart.Col() < nColStart) + rRange.aStart.SetCol(nColStart); + if (rRange.aStart.Row() < nRowStart) + rRange.aStart.SetRow(nRowStart); - if (p->aEnd.Col() > nColEnd) - p->aEnd.SetCol(nColEnd); - if (p->aEnd.Row() > nRowEnd) - p->aEnd.SetRow(nRowEnd); + if (rRange.aEnd.Col() > nColEnd) + rRange.aEnd.SetCol(nColEnd); + if (rRange.aEnd.Row() > nRowEnd) + rRange.aEnd.SetRow(nRowEnd); - aNewRanges.Append(*p); + aNewRanges.push_back(rRange); } aRanges = aNewRanges; } @@ -884,8 +883,8 @@ bool ScTable::SearchAndReplaceEmptyCells( { for ( size_t i = aRanges.size(); i > 0; --i ) { - ScRange* p = aRanges[ i - 1 ]; - if (SearchRangeForEmptyCell(*p, rSearchItem, rCol, rRow, rUndoStr)) + const ScRange & rRange = aRanges[ i - 1 ]; + if (SearchRangeForEmptyCell(rRange, rSearchItem, rCol, rRow, rUndoStr)) return true; } } @@ -893,8 +892,8 @@ bool ScTable::SearchAndReplaceEmptyCells( { for ( size_t i = 0, nListSize = aRanges.size(); i < nListSize; ++i ) { - ScRange* p = aRanges[ i ]; - if (SearchRangeForEmptyCell(*p, rSearchItem, rCol, rRow, rUndoStr)) + const ScRange & rRange = aRanges[ i ]; + if (SearchRangeForEmptyCell(rRange, rSearchItem, rCol, rRow, rUndoStr)) return true; } } @@ -904,8 +903,8 @@ bool ScTable::SearchAndReplaceEmptyCells( bool bFound = false; for ( size_t i = 0, nListSize = aRanges.size(); i < nListSize; ++i ) { - ScRange* p = aRanges[ i ]; - bFound |= SearchRangeForAllEmptyCells(*p, rSearchItem, rMatchedRanges, rUndoStr, pUndoDoc); + ScRange const & rRange = aRanges[ i ]; + bFound |= SearchRangeForAllEmptyCells(rRange, rSearchItem, rMatchedRanges, rUndoStr, pUndoDoc); } return bFound; } diff --git a/sc/source/core/data/tabprotection.cxx b/sc/source/core/data/tabprotection.cxx index 05b53d16e551..3deb5504fa24 100644 --- a/sc/source/core/data/tabprotection.cxx +++ b/sc/source/core/data/tabprotection.cxx @@ -489,7 +489,7 @@ bool ScTableProtectionImpl::isBlockEditable( const ScRange& rRange ) const if (!(*it).hasSecurityDescriptor() && (*it).maRangeList.is()) { ScRangeList aList( (*it).maRangeList->GetIntersectedRange( rRange)); - if (aList.size() == 1 && *aList[0] == rRange) + if (aList.size() == 1 && aList[0] == rRange) { // Range is editable if no password is assigned. if (!(*it).hasPassword()) @@ -516,13 +516,13 @@ bool ScTableProtectionImpl::isBlockEditable( const ScRange& rRange ) const size_t nRanges = rRanges.size(); for (size_t i=0; i < nRanges; ++i) { - aRangeList.Append( *rRanges[i]); + aRangeList.push_back( rRanges[i]); } } } } ScRangeList aResultList( aRangeList.GetIntersectedRange( rRange)); - return aResultList.size() == 1 && *aResultList[0] == rRange; + return aResultList.size() == 1 && aResultList[0] == rRange; } bool ScTableProtectionImpl::isSelectionEditable( const ScRangeList& rRangeList ) const @@ -532,7 +532,7 @@ bool ScTableProtectionImpl::isSelectionEditable( const ScRangeList& rRangeList ) for (size_t i=0, nRanges = rRangeList.size(); i < nRanges; ++i) { - if (!isBlockEditable( *rRangeList[i])) + if (!isBlockEditable( rRangeList[i])) return false; } return true; diff --git a/sc/source/core/tool/chartarr.cxx b/sc/source/core/tool/chartarr.cxx index 6b020b0e3049..ef73e5727c48 100644 --- a/sc/source/core/tool/chartarr.cxx +++ b/sc/source/core/tool/chartarr.cxx @@ -68,8 +68,8 @@ ScMemChart* ScChartArray::CreateMemChart() return CreateMemChartMulti(); else if ( nCount == 1 ) { - ScRange* pR = aRangeListRef->front(); - if ( pR->aStart.Tab() != pR->aEnd.Tab() ) + const ScRange & rR = aRangeListRef->front(); + if ( rR.aStart.Tab() != rR.aEnd.Tab() ) return CreateMemChartMulti(); else return CreateMemChartSingle(); @@ -129,7 +129,7 @@ ScMemChart* ScChartArray::CreateMemChartSingle() SCROW nRow2; SCTAB nTab2; ScRangeListRef aRangeListRef(GetRangeList()); - aRangeListRef->front()->GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 ); + aRangeListRef->front().GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 ); SCCOL nStrCol = nCol1; // remember for labeling SCROW nStrRow = nRow1; diff --git a/sc/source/core/tool/charthelper.cxx b/sc/source/core/tool/charthelper.cxx index 12e05fa415e9..79140b928142 100644 --- a/sc/source/core/tool/charthelper.cxx +++ b/sc/source/core/tool/charthelper.cxx @@ -76,21 +76,21 @@ bool lcl_AdjustRanges( ScRangeList& rRanges, SCTAB nSourceTab, SCTAB nDestTab, S for ( size_t i=0, nCount = rRanges.size(); i < nCount; i++ ) { - ScRange* pRange = rRanges[ i ]; - if ( pRange->aStart.Tab() == nSourceTab && pRange->aEnd.Tab() == nSourceTab ) + ScRange & rRange = rRanges[ i ]; + if ( rRange.aStart.Tab() == nSourceTab && rRange.aEnd.Tab() == nSourceTab ) { - pRange->aStart.SetTab( nDestTab ); - pRange->aEnd.SetTab( nDestTab ); + rRange.aStart.SetTab( nDestTab ); + rRange.aEnd.SetTab( nDestTab ); bChanged = true; } - if ( pRange->aStart.Tab() >= nTabCount ) + if ( rRange.aStart.Tab() >= nTabCount ) { - pRange->aStart.SetTab( nTabCount > 0 ? ( nTabCount - 1 ) : 0 ); + rRange.aStart.SetTab( nTabCount > 0 ? ( nTabCount - 1 ) : 0 ); bChanged = true; } - if ( pRange->aEnd.Tab() >= nTabCount ) + if ( rRange.aEnd.Tab() >= nTabCount ) { - pRange->aEnd.SetTab( nTabCount > 0 ? ( nTabCount - 1 ) : 0 ); + rRange.aEnd.SetTab( nTabCount > 0 ? ( nTabCount - 1 ) : 0 ); bChanged = true; } } @@ -417,8 +417,7 @@ void ScChartHelper::CreateProtectedChartListenersAndNotify( ScDocument* pDoc, co { tools::Rectangle aRectangle = pSdrOle2Obj->GetSnapRect(); ScRange aRange( pDoc->GetRange( nTab, aRectangle ) ); - ScRangeList aChangeRanges; - aChangeRanges.Append( aRange ); + ScRangeList aChangeRanges( aRange ); uno::Sequence< beans::PropertyValue > aProperties( 1 ); aProperties[ 0 ].Name = "Name"; diff --git a/sc/source/core/tool/chartpos.cxx b/sc/source/core/tool/chartpos.cxx index db2469d853e5..fb78be869573 100644 --- a/sc/source/core/tool/chartpos.cxx +++ b/sc/source/core/tool/chartpos.cxx @@ -90,8 +90,7 @@ ScChartPositioner::~ScChartPositioner() void ScChartPositioner::SetRangeList( const ScRange& rRange ) { - aRangeListRef = new ScRangeList; - aRangeListRef->Append( rRange ); + aRangeListRef = new ScRangeList( rRange ); InvalidateGlue(); } @@ -105,7 +104,7 @@ void ScChartPositioner::GlueState() { if ( !aRangeListRef->empty() ) { - pR = aRangeListRef->front(); + pR = &aRangeListRef->front(); if ( pR->aStart.Tab() == pR->aEnd.Tab() ) eGlue = ScChartGlue::NONE; else @@ -122,7 +121,7 @@ void ScChartPositioner::GlueState() return; } - pR = aRangeListRef->front(); + pR = &aRangeListRef->front(); nStartCol = pR->aStart.Col(); nStartRow = pR->aStart.Row(); SCCOL nMaxCols, nEndCol; @@ -143,7 +142,7 @@ void ScChartPositioner::GlueState() // in last pass; i = nRanges so don't use at() if ( i < nRanges ) - pR = (*aRangeListRef)[i]; + pR = &(*aRangeListRef)[i]; } SCCOL nC = nEndCol - nStartCol + 1; if ( nC == 1 ) @@ -176,7 +175,7 @@ void ScChartPositioner::GlueState() SCROW nRow, nRow1, nRow2; for ( size_t i = 0, nRanges = aRangeListRef->size(); i < nRanges; ++i ) { // mark selections as used in 2D - pR = (*aRangeListRef)[i]; + pR = &(*aRangeListRef)[i]; nCol1 = pR->aStart.Col() - nStartCol; nCol2 = pR->aEnd.Col() - nStartCol; nRow1 = pR->aStart.Row() - nStartRow; @@ -274,7 +273,7 @@ void ScChartPositioner::CheckColRowHeaders() GlueState(); if ( aRangeListRef->size() == 1 ) { - aRangeListRef->front()->GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 ); + aRangeListRef->front().GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 ); if ( nCol1 > nCol2 || nRow1 > nRow2 ) bColStrings = bRowStrings = false; else @@ -299,8 +298,8 @@ void ScChartPositioner::CheckColRowHeaders() ++i ) { - ScRange* pR = (*aRangeListRef)[i]; - pR->GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 ); + const ScRange & rR = (*aRangeListRef)[i]; + rR.GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 ); bool bTopRow = (nRow1 == nStartRow); if ( bRowStrings && (bVert || nCol1 == nStartCol) ) { // NONE or ROWS: RowStrings in every selection possible @@ -362,8 +361,8 @@ void ScChartPositioner::CreatePositionMap() SCROW nNoGlueRow = 0; for ( size_t i = 0, nRanges = aRangeListRef->size(); i < nRanges; ++i ) { - ScRange* pR = (*aRangeListRef)[i]; - pR->GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 ); + const ScRange & rR = (*aRangeListRef)[i]; + rR.GetVars( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2 ); for ( nTab = nTab1; nTab <= nTab2; nTab++ ) { // nTab in ColKey to allow to have the same col/row in another table diff --git a/sc/source/core/tool/dbdata.cxx b/sc/source/core/tool/dbdata.cxx index efb3f15671cf..75ff41b8f99a 100644 --- a/sc/source/core/tool/dbdata.cxx +++ b/sc/source/core/tool/dbdata.cxx @@ -1398,11 +1398,11 @@ void ScDBCollection::RefreshDirtyTableColumnNames() { for (size_t i=0; i < maNamedDBs.maDirtyTableColumnNames.size(); ++i) { - const ScRange* pRange = maNamedDBs.maDirtyTableColumnNames[i]; + const ScRange & rRange = maNamedDBs.maDirtyTableColumnNames[i]; for (auto const& it : maNamedDBs) { if (it->AreTableColumnNamesDirty()) - it->RefreshTableColumnNames( &maNamedDBs.mrDoc, *pRange); + it->RefreshTableColumnNames( &maNamedDBs.mrDoc, rRange); } } maNamedDBs.maDirtyTableColumnNames.RemoveAll(); diff --git a/sc/source/core/tool/rangelst.cxx b/sc/source/core/tool/rangelst.cxx index 0513d258a634..3b68a8fd5032 100644 --- a/sc/source/core/tool/rangelst.cxx +++ b/sc/source/core/tool/rangelst.cxx @@ -42,9 +42,9 @@ class FindEnclosingRange { public: explicit FindEnclosingRange(const T& rTest) : mrTest(rTest) {} - bool operator() (const ScRange* pRange) const + bool operator() (const ScRange & rRange) const { - return pRange->In(mrTest); + return rRange.In(mrTest); } private: const T& mrTest; @@ -55,9 +55,9 @@ class FindRangeIn { public: FindRangeIn(const T& rTest) : mrTest(rTest) {} - bool operator() (const ScRange* pRange) const + bool operator() (const ScRange& rRange) const { - return mrTest.In(*pRange); + return mrTest.In(rRange); } private: const T& mrTest; @@ -68,9 +68,9 @@ class FindIntersectingRange { public: explicit FindIntersectingRange(const T& rTest) : mrTest(rTest) {} - bool operator() (const ScRange* pRange) const + bool operator() (const ScRange & rRange) const { - return pRange->Intersects(mrTest); + return rRange.Intersects(mrTest); } private: const T& mrTest; @@ -79,13 +79,13 @@ private: class AppendToList { public: - explicit AppendToList(vector<ScRange*>& rRanges) : mrRanges(rRanges) {} - void operator() (const ScRange* p) + explicit AppendToList(vector<ScRange>& rRanges) : mrRanges(rRanges) {} + void operator() (const ScRange& r) { - mrRanges.push_back(new ScRange(*p)); + mrRanges.push_back(r); } private: - vector<ScRange*>& mrRanges; + vector<ScRange>& mrRanges; }; class CountCells @@ -93,12 +93,12 @@ class CountCells public: CountCells() : mnCellCount(0) {} - void operator() (const ScRange* p) + void operator() (const ScRange & r) { mnCellCount += - size_t(p->aEnd.Col() - p->aStart.Col() + 1) - * size_t(p->aEnd.Row() - p->aStart.Row() + 1) - * size_t(p->aEnd.Tab() - p->aStart.Tab() + 1); + size_t(r.aEnd.Col() - r.aStart.Col() + 1) + * size_t(r.aEnd.Row() - r.aStart.Row() + 1) + * size_t(r.aEnd.Tab() - r.aStart.Tab() + 1); } size_t getCellCount() const { return mnCellCount; } @@ -119,9 +119,9 @@ public: mbFirst(true), mbFullAddressNotation(bFullAddressNotation) {} - void operator() (const ScRange* p) + void operator() (const ScRange & r) { - OUString aStr(p->Format(mnFlags, mpDoc, meConv, mbFullAddressNotation)); + OUString aStr(r.Format(mnFlags, mpDoc, meConv, mbFullAddressNotation)); if (mbFirst) mbFirst = false; else @@ -175,7 +175,7 @@ ScRefFlags ScRangeList::Parse( const OUString& rStr, const ScDocument* pDoc, applyStartToEndFlags(nRes, nTmp1); if ( nRes & ScRefFlags::VALID ) - Append( aRange ); + push_back( aRange ); nResult &= nRes; // all common bits are preserved } while (nPos >= 0); @@ -200,11 +200,11 @@ void ScRangeList::Format( OUString& rStr, ScRefFlags nFlags, ScDocument* pDoc, rStr = aStr; } -void ScRangeList::Join( const ScRange& r, bool bIsInList ) +void ScRangeList::Join( const ScRange& rNewRange, bool bIsInList ) { if ( maRanges.empty() ) { - Append( r ); + push_back( rNewRange ); return ; } @@ -219,22 +219,22 @@ void ScRangeList::Join( const ScRange& r, bool bIsInList ) if (!bIsInList) { - const SCROW nRow1 = r.aStart.Row(); + const SCROW nRow1 = rNewRange.aStart.Row(); if (nRow1 > mnMaxRowUsed + 1) { - Append( r ); + push_back( rNewRange ); return; } else if (nRow1 == mnMaxRowUsed + 1) { // Check if we can simply enlarge the last range. - ScRange* p = maRanges.back(); - if (p->aEnd.Row() + 1 == nRow1 && - p->aStart.Col() == r.aStart.Col() && p->aEnd.Col() == r.aEnd.Col() && - p->aStart.Tab() == r.aStart.Tab() && p->aEnd.Tab() == r.aEnd.Tab()) + ScRange & rLast = maRanges.back(); + if (rLast.aEnd.Row() + 1 == nRow1 && + rLast.aStart.Col() == rNewRange.aStart.Col() && rLast.aEnd.Col() == rNewRange.aEnd.Col() && + rLast.aStart.Tab() == rNewRange.aStart.Tab() && rLast.aEnd.Tab() == rNewRange.aEnd.Tab()) { - const SCROW nRow2 = r.aEnd.Row(); - p->aEnd.SetRow( nRow2 ); + const SCROW nRow2 = rNewRange.aEnd.Row(); + rLast.aEnd.SetRow( nRow2 ); mnMaxRowUsed = nRow2; return; } @@ -242,7 +242,7 @@ void ScRangeList::Join( const ScRange& r, bool bIsInList ) } bool bJoinedInput = false; - const ScRange* pOver = &r; + const ScRange* pOver = &rNewRange; Label_Range_Join: @@ -257,14 +257,14 @@ Label_Range_Join: size_t nOverPos = std::numeric_limits<size_t>::max(); for (size_t i = 0; i < maRanges.size(); ++i) { - ScRange* p = maRanges[i]; - if ( p == pOver ) + ScRange & rRange = maRanges[i]; + if ( &rRange == pOver ) { nOverPos = i; continue; // the same one, continue with the next } bool bJoined = false; - if ( p->In( *pOver ) ) + if ( rRange.In( *pOver ) ) { // range pOver included in or identical to range p // XXX if we never used Append() before Join() we could remove // pOver and end processing, but it is not guaranteed and there can @@ -277,40 +277,40 @@ Label_Range_Join: break; // for } } - else if ( pOver->In( *p ) ) - { // range p included in range pOver, make pOver the new range - *p = *pOver; + else if ( pOver->In( rRange ) ) + { // range rRange included in range pOver, make pOver the new range + rRange = *pOver; bJoined = true; } - if ( !bJoined && p->aStart.Tab() == nTab1 && p->aEnd.Tab() == nTab2 ) + if ( !bJoined && rRange.aStart.Tab() == nTab1 && rRange.aEnd.Tab() == nTab2 ) { // 2D - if ( p->aStart.Col() == nCol1 && p->aEnd.Col() == nCol2 ) + if ( rRange.aStart.Col() == nCol1 && rRange.aEnd.Col() == nCol2 ) { - if ( p->aStart.Row() <= nRow2+1 && - p->aStart.Row() >= nRow1 ) + if ( rRange.aStart.Row() <= nRow2+1 && + rRange.aStart.Row() >= nRow1 ) { // top - p->aStart.SetRow( nRow1 ); + rRange.aStart.SetRow( nRow1 ); bJoined = true; } - else if ( p->aEnd.Row() >= nRow1-1 && - p->aEnd.Row() <= nRow2 ) + else if ( rRange.aEnd.Row() >= nRow1-1 && + rRange.aEnd.Row() <= nRow2 ) { // bottom - p->aEnd.SetRow( nRow2 ); + rRange.aEnd.SetRow( nRow2 ); bJoined = true; } } - else if ( p->aStart.Row() == nRow1 && p->aEnd.Row() == nRow2 ) + else if ( rRange.aStart.Row() == nRow1 && rRange.aEnd.Row() == nRow2 ) { - if ( p->aStart.Col() <= nCol2+1 && - p->aStart.Col() >= nCol1 ) + if ( rRange.aStart.Col() <= nCol2+1 && + rRange.aStart.Col() >= nCol1 ) { // left - p->aStart.SetCol( nCol1 ); + rRange.aStart.SetCol( nCol1 ); bJoined = true; } - else if ( p->aEnd.Col() >= nCol1-1 && - p->aEnd.Col() <= nCol2 ) + else if ( rRange.aEnd.Col() >= nCol1-1 && + rRange.aEnd.Col() <= nCol2 ) { // right - p->aEnd.SetCol( nCol2 ); + rRange.aEnd.SetCol( nCol2 ); bJoined = true; } } @@ -325,7 +325,7 @@ Label_Range_Join: { for (size_t nOver = 0, nRanges = maRanges.size(); nOver < nRanges; ++nOver) { - if (maRanges[nOver] == pOver) + if (&maRanges[nOver] == pOver) { Remove(nOver); break; @@ -334,13 +334,13 @@ Label_Range_Join: } } bJoinedInput = true; - pOver = p; + pOver = &rRange; bIsInList = true; goto Label_Range_Join; } } if ( !bIsInList && !bJoinedInput ) - Append( r ); + push_back( rNewRange ); } bool ScRangeList::operator==( const ScRangeList& r ) const @@ -351,13 +351,13 @@ bool ScRangeList::operator==( const ScRangeList& r ) const if (maRanges.size() != r.maRanges.size()) return false; - vector<ScRange*>::const_iterator itr1 = maRanges.begin(), itrEnd = maRanges.end(); - vector<ScRange*>::const_iterator itr2 = r.maRanges.begin(); + auto itr1 = maRanges.begin(), itrEnd = maRanges.end(); + auto itr2 = r.maRanges.begin(); for (; itr1 != itrEnd; ++itr1, ++itr2) { - const ScRange* p1 = *itr1; - const ScRange* p2 = *itr2; - if (*p1 != *p2) + const ScRange& r1 = *itr1; + const ScRange& r2 = *itr2; + if (r1 != r2) return false; } return true; @@ -413,14 +413,14 @@ bool ScRangeList::UpdateReference( iterator itr = maRanges.begin(), itrEnd = maRanges.end(); for (; itr != itrEnd; ++itr) { - ScRange* pR = *itr; + ScRange& rR = *itr; SCCOL theCol1; SCROW theRow1; SCTAB theTab1; SCCOL theCol2; SCROW theRow2; SCTAB theTab2; - pR->GetVars( theCol1, theRow1, theTab1, theCol2, theRow2, theTab2 ); + rR.GetVars( theCol1, theRow1, theTab1, theCol2, theRow2, theTab2 ); if ( ScRefUpdate::Update( pDoc, eUpdateRefMode, nCol1, nRow1, nTab1, nCol2, nRow2, nTab2, nDx, nDy, nDz, @@ -428,8 +428,8 @@ bool ScRangeList::UpdateReference( != UR_NOTHING ) { bChanged = true; - pR->aStart.Set( theCol1, theRow1, theTab1 ); - pR->aEnd.Set( theCol2, theRow2, theTab2 ); + rR.aStart.Set( theCol1, theRow1, theTab1 ); + rR.aEnd.Set( theCol2, theRow2, theTab2 ); if (mnMaxRowUsed < theRow2) mnMaxRowUsed = theRow2; } @@ -440,7 +440,7 @@ bool ScRangeList::UpdateReference( if( nDx < 0 || nDy < 0 ) { size_t n = maRanges.size(); - Join(*maRanges[n-1], true); + Join(maRanges[n-1], true); } } @@ -453,14 +453,14 @@ void ScRangeList::InsertRow( SCTAB nTab, SCCOL nColStart, SCCOL nColEnd, SCROW n for(iterator it = maRanges.begin(), itEnd = maRanges.end(); it != itEnd; ++it) { - ScRange* pRange = *it; - if(pRange->aStart.Tab() <= nTab && pRange->aEnd.Tab() >= nTab) + ScRange & rRange = *it; + if(rRange.aStart.Tab() <= nTab && rRange.aEnd.Tab() >= nTab) { - if(pRange->aEnd.Row() == nRowPos - 1 && (nColStart <= pRange->aEnd.Col() || nColEnd >= pRange->aStart.Col())) + if(rRange.aEnd.Row() == nRowPos - 1 && (nColStart <= rRange.aEnd.Col() || nColEnd >= rRange.aStart.Col())) { - SCCOL nNewRangeStartCol = std::max<SCCOL>(nColStart, pRange->aStart.Col()); - SCCOL nNewRangeEndCol = std::min<SCCOL>(nColEnd, pRange->aEnd.Col()); - SCROW nNewRangeStartRow = pRange->aEnd.Row() + 1; + SCCOL nNewRangeStartCol = std::max<SCCOL>(nColStart, rRange.aStart.Col()); + SCCOL nNewRangeEndCol = std::min<SCCOL>(nColEnd, rRange.aEnd.Col()); + SCROW nNewRangeStartRow = rRange.aEnd.Row() + 1; SCROW nNewRangeEndRow = nRowPos + nSize - 1; aNewRanges.emplace_back(nNewRangeStartCol, nNewRangeStartRow, nTab, nNewRangeEndCol, nNewRangeEndRow, nTab); @@ -486,14 +486,14 @@ void ScRangeList::InsertCol( SCTAB nTab, SCROW nRowStart, SCROW nRowEnd, SCCOL n for(iterator it = maRanges.begin(), itEnd = maRanges.end(); it != itEnd; ++it) { - ScRange* pRange = *it; - if(pRange->aStart.Tab() <= nTab && pRange->aEnd.Tab() >= nTab) + ScRange & rRange = *it; + if(rRange.aStart.Tab() <= nTab && rRange.aEnd.Tab() >= nTab) { - if(pRange->aEnd.Col() == nColPos - 1 && (nRowStart <= pRange->aEnd.Row() || nRowEnd >= pRange->aStart.Row())) + if(rRange.aEnd.Col() == nColPos - 1 && (nRowStart <= rRange.aEnd.Row() || nRowEnd >= rRange.aStart.Row())) { - SCROW nNewRangeStartRow = std::max<SCROW>(nRowStart, pRange->aStart.Row()); - SCROW nNewRangeEndRow = std::min<SCROW>(nRowEnd, pRange->aEnd.Row()); - SCCOL nNewRangeStartCol = pRange->aEnd.Col() + 1; + SCROW nNewRangeStartRow = std::max<SCROW>(nRowStart, rRange.aStart.Row()); + SCROW nNewRangeEndRow = std::min<SCROW>(nRowEnd, rRange.aEnd.Row()); + SCCOL nNewRangeStartCol = rRange.aEnd.Col() + 1; SCCOL nNewRangeEndCol = nColPos + nSize - 1; aNewRanges.emplace_back(nNewRangeStartCol, nNewRangeStartRow, nTab, nNewRangeEndCol, nNewRangeEndRow, nTab); @@ -539,12 +539,12 @@ bool checkForOneRange( return nDeleteX1 <= nX1 && nX2 <= nDeleteX2 && (nDeleteY1 <= nY1 || nY2 <= nDeleteY2); } -bool handleOneRange( const ScRange& rDeleteRange, ScRange* p ) +bool handleOneRange( const ScRange& rDeleteRange, ScRange& r ) { const ScAddress& rDelStart = rDeleteRange.aStart; const ScAddress& rDelEnd = rDeleteRange.aEnd; - ScAddress aPStart = p->aStart; - ScAddress aPEnd = p->aEnd; + ScAddress aPStart = r.aStart; + ScAddress aPEnd = r.aEnd; SCCOL nDeleteCol1 = rDelStart.Col(); SCCOL nDeleteCol2 = rDelEnd.Col(); SCROW nDeleteRow1 = rDelStart.Row(); @@ -565,7 +565,7 @@ bool handleOneRange( const ScRange& rDeleteRange, ScRange* p ) // | | // +------+ (xxx) = deleted region - p->aStart.SetRow(nDeleteRow1+1); + r.aStart.SetRow(nDeleteRow1+1); return true; } else if (nRow2 <= nDeleteRow2) @@ -576,7 +576,7 @@ bool handleOneRange( const ScRange& rDeleteRange, ScRange* p ) // |xxxxxx| // +------+ (xxx) = deleted region - p->aEnd.SetRow(nDeleteRow1-1); + r.aEnd.SetRow(nDeleteRow1-1); return true; } } @@ -591,7 +591,7 @@ bool handleOneRange( const ScRange& rDeleteRange, ScRange* p ) // |xx| | // +--+--+ (xxx) = deleted region - p->aStart.SetCol(nDeleteCol2+1); + r.aStart.SetCol(nDeleteCol2+1); return true; } else if (nCol2 <= nDeleteCol2) @@ -602,19 +602,19 @@ bool handleOneRange( const ScRange& rDeleteRange, ScRange* p ) // | |xx| // +--+--+ (xxx) = deleted region - p->aEnd.SetCol(nDeleteCol1-1); + r.aEnd.SetCol(nDeleteCol1-1); return true; } } return false; } -bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRange>& rNewRanges ) +bool handleTwoRanges( const ScRange& rDeleteRange, ScRange& r, std::vector<ScRange>& rNewRanges ) { const ScAddress& rDelStart = rDeleteRange.aStart; const ScAddress& rDelEnd = rDeleteRange.aEnd; - ScAddress aPStart = p->aStart; - ScAddress aPEnd = p->aEnd; + ScAddress aPStart = r.aStart; + ScAddress aPEnd = r.aEnd; SCCOL nDeleteCol1 = rDelStart.Col(); SCCOL nDeleteCol2 = rDelEnd.Col(); SCROW nDeleteRow1 = rDelStart.Row(); @@ -645,7 +645,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan ScRange aNewRange( nCol1, nDeleteRow1, nTab, nDeleteCol1-1, nRow2, nTab ); // 2 rNewRanges.push_back(aNewRange); - p->aEnd.SetRow(nDeleteRow1-1); // 1 + r.aEnd.SetRow(nDeleteRow1-1); // 1 return true; } else if (nRow1 <= nDeleteRow2 && nDeleteRow2 < nRow2 && nDeleteRow1 <= nRow1) @@ -664,7 +664,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan ScRange aNewRange( aPStart, ScAddress(nDeleteCol1-1, nRow2, nTab) ); // 1 rNewRanges.push_back(aNewRange); - p->aStart.SetRow(nDeleteRow2+1); // 2 + r.aStart.SetRow(nDeleteRow2+1); // 2 return true; } } @@ -689,7 +689,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan ScRange aNewRange( ScAddress( nDeleteCol2+1, nDeleteRow1, nTab ), aPEnd ); // 2 rNewRanges.push_back(aNewRange); - p->aEnd.SetRow(nDeleteRow1-1); // 1 + r.aEnd.SetRow(nDeleteRow1-1); // 1 return true; } else if (nRow1 <= nDeleteRow2 && nDeleteRow2 < nRow2 && nDeleteRow1 <= nRow1) @@ -708,7 +708,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan ScRange aNewRange(nDeleteCol2+1, nRow1, nTab, nCol2, nDeleteRow2, nTab); // 1 rNewRanges.push_back(aNewRange); - p->aStart.SetRow(nDeleteRow2+1); // 2 + r.aStart.SetRow(nDeleteRow2+1); // 2 return true; } } @@ -725,7 +725,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan ScRange aNewRange( aPStart, ScAddress(nCol2, nDeleteRow1-1, nTab) ); // 1 rNewRanges.push_back(aNewRange); - p->aStart.SetRow(nDeleteRow2+1); // 2 + r.aStart.SetRow(nDeleteRow2+1); // 2 return true; } else if (nCol1 < nDeleteCol1 && nDeleteCol2 < nCol2 && nDeleteRow1 <= nRow1 && nRow2 <= nDeleteRow2) @@ -741,7 +741,7 @@ bool handleTwoRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRan ScRange aNewRange( aPStart, ScAddress(nDeleteCol1-1, nRow2, nTab) ); // 1 rNewRanges.push_back(aNewRange); - p->aStart.SetCol(nDeleteCol2+1); // 2 + r.aStart.SetCol(nDeleteCol2+1); // 2 return true; } @@ -785,12 +785,12 @@ bool checkForThreeRanges( return false; } -bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScRange>& rNewRanges ) +bool handleThreeRanges( const ScRange& rDeleteRange, ScRange& r, std::vector<ScRange>& rNewRanges ) { const ScAddress& rDelStart = rDeleteRange.aStart; const ScAddress& rDelEnd = rDeleteRange.aEnd; - ScAddress aPStart = p->aStart; - ScAddress aPEnd = p->aEnd; + ScAddress aPStart = r.aStart; + ScAddress aPEnd = r.aEnd; SCCOL nDeleteCol1 = rDelStart.Col(); SCCOL nDeleteCol2 = rDelEnd.Col(); SCROW nDeleteRow1 = rDelStart.Row(); @@ -819,7 +819,7 @@ bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScR aNewRange = ScRange(ScAddress(nDeleteCol1, nDeleteRow2+1, nTab), aPEnd); // 3 rNewRanges.push_back(aNewRange); - p->aEnd.SetCol(nDeleteCol1-1); // 1 + r.aEnd.SetCol(nDeleteCol1-1); // 1 } else { @@ -837,7 +837,7 @@ bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScR aNewRange = ScRange(nCol1, nDeleteRow2+1, nTab, nDeleteCol2, nRow2, nTab); // 3 rNewRanges.push_back(aNewRange); - p->aStart.SetCol(nDeleteCol2+1); // 2 + r.aStart.SetCol(nDeleteCol2+1); // 2 } return true; } @@ -861,7 +861,7 @@ bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScR aNewRange = ScRange(ScAddress(nDeleteCol2+1, nDeleteRow1, nTab), aPEnd); // 3 rNewRanges.push_back( aNewRange ); - p->aEnd.SetRow(nDeleteRow1-1); // 1 + r.aEnd.SetRow(nDeleteRow1-1); // 1 } else { @@ -880,7 +880,7 @@ bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScR aNewRange = ScRange(nDeleteCol2+1, nRow1, nTab, nCol2, nDeleteRow2, nTab); // 2 rNewRanges.push_back( aNewRange ); - p->aStart.SetRow(nDeleteRow2+1); // 3 + r.aStart.SetRow(nDeleteRow2+1); // 3 } return true; } @@ -888,12 +888,12 @@ bool handleThreeRanges( const ScRange& rDeleteRange, ScRange* p, std::vector<ScR return false; } -bool handleFourRanges( const ScRange& rDelRange, ScRange* p, std::vector<ScRange>& rNewRanges ) +bool handleFourRanges( const ScRange& rDelRange, ScRange& r, std::vector<ScRange>& rNewRanges ) { const ScAddress& rDelStart = rDelRange.aStart; const ScAddress& rDelEnd = rDelRange.aEnd; - ScAddress aPStart = p->aStart; - ScAddress aPEnd = p->aEnd; + ScAddress aPStart = r.aStart; + ScAddress aPEnd = r.aEnd; SCCOL nDeleteCol1 = rDelStart.Col(); SCCOL nDeleteCol2 = rDelEnd.Col(); SCROW nDeleteRow1 = rDelStart.Row(); @@ -926,7 +926,7 @@ bool handleFourRanges( const ScRange& rDelRange, ScRange* p, std::vector<ScRange aNewRange = ScRange(nDeleteCol2+1, nDeleteRow1, nTab, nCol2, nDeleteRow2, nTab); // 3 rNewRanges.push_back( aNewRange ); - p->aEnd.SetRow(nDeleteRow1-1); // 1 + r.aEnd.SetRow(nDeleteRow1-1); // 1 return true; } @@ -960,7 +960,7 @@ bool ScRangeList::DeleteArea( SCCOL nCol1, SCROW nRow1, SCTAB nTab1, // 1. Delete area and pRange intersect // 2. Delete area and pRange are not intersecting // checking for 2 and if true skip this range - if(!(*itr)->Intersects(aRange)) + if(!itr->Intersects(aRange)) continue; // We get between 1 and 4 ranges from the difference of the first with the second @@ -1016,14 +1016,14 @@ const ScRange* ScRangeList::Find( const ScAddress& rAdr ) const { const_iterator itr = find_if( maRanges.begin(), maRanges.end(), FindEnclosingRange<ScAddress>(rAdr)); - return itr == maRanges.end() ? nullptr : *itr; + return itr == maRanges.end() ? nullptr : &*itr; } ScRange* ScRangeList::Find( const ScAddress& rAdr ) { iterator itr = find_if( maRanges.begin(), maRanges.end(), FindEnclosingRange<ScAddress>(rAdr)); - return itr == maRanges.end() ? nullptr : *itr; + return itr == maRanges.end() ? nullptr : &*itr; } ScRangeList::ScRangeList() : mnMaxRowUsed(-1) {} @@ -1037,11 +1037,18 @@ ScRangeList::ScRangeList( const ScRangeList& rList ) : mnMaxRowUsed = rList.mnMaxRowUsed; } +ScRangeList::ScRangeList( const ScRangeList&& rList ) : + SvRefBase(), + maRanges(rList.maRanges), + mnMaxRowUsed(rList.mnMaxRowUsed) +{ +} + ScRangeList::ScRangeList( const ScRange& rRange ) : mnMaxRowUsed(-1) { maRanges.reserve(1); - Append(rRange); + push_back(rRange); } ScRangeList& ScRangeList::operator=(const ScRangeList& rList) @@ -1053,10 +1060,11 @@ ScRangeList& ScRangeList::operator=(const ScRangeList& rList) return *this; } -void ScRangeList::Append( const ScRange& rRange ) +ScRangeList& ScRangeList::operator=(ScRangeList&& rList) { - ScRange* pR = new ScRange( rRange ); - push_back( pR ); + maRanges = std::move(rList.maRanges); + mnMaxRowUsed = rList.mnMaxRowUsed; + return *this; } bool ScRangeList::Intersects( const ScRange& rRange ) const @@ -1080,16 +1088,11 @@ void ScRangeList::Remove(size_t nPos) if (maRanges.size() <= nPos) // Out-of-bound condition. Bail out. return; - - iterator itr = maRanges.begin(); - advance(itr, nPos); - delete *itr; - maRanges.erase(itr); + maRanges.erase(maRanges.begin() + nPos); } void ScRangeList::RemoveAll() { - for_each(maRanges.begin(), maRanges.end(), std::default_delete<ScRange>()); maRanges.clear(); } @@ -1099,11 +1102,11 @@ ScRange ScRangeList::Combine() const return ScRange(); const_iterator itr = maRanges.begin(), itrEnd = maRanges.end(); - ScRange aRet = **itr; + ScRange aRet = *itr; ++itr; for (; itr != itrEnd; ++itr) { - const ScRange& r = **itr; + const ScRange& r = *itr; SCROW nRow1 = r.aStart.Row(), nRow2 = r.aEnd.Row(); SCCOL nCol1 = r.aStart.Col(), nCol2 = r.aEnd.Col(); SCTAB nTab1 = r.aStart.Tab(), nTab2 = r.aEnd.Tab(); @@ -1123,51 +1126,11 @@ ScRange ScRangeList::Combine() const return aRet; } -bool ScRangeList::empty() const -{ - return maRanges.empty(); -} - -size_t ScRangeList::size() const -{ - return maRanges.size(); -} - -ScRange* ScRangeList::operator [](size_t idx) -{ - return maRanges[idx]; -} - -const ScRange* ScRangeList::operator [](size_t idx) const -{ - return maRanges[idx]; -} - -ScRange* ScRangeList::front() -{ - return maRanges.front(); -} - -const ScRange* ScRangeList::front() const -{ - return maRanges.front(); -} - -ScRange* ScRangeList::back() -{ - return maRanges.back(); -} - -const ScRange* ScRangeList::back() const -{ - return maRanges.back(); -} - -void ScRangeList::push_back(ScRange* p) +void ScRangeList::push_back(const ScRange & r) { - maRanges.push_back(p); - if (mnMaxRowUsed < p->aEnd.Row()) - mnMaxRowUsed = p->aEnd.Row(); + maRanges.push_back(r); + if (mnMaxRowUsed < r.aEnd.Row()) + mnMaxRowUsed = r.aEnd.Row(); } void ScRangeList::swap( ScRangeList& r ) @@ -1181,14 +1144,14 @@ ScAddress ScRangeList::GetTopLeftCorner() const if(empty()) return ScAddress(); - ScAddress aAddr = maRanges[0]->aStart; + ScAddress const * pAddr = &maRanges[0].aStart; for(size_t i = 1, n = size(); i < n; ++i) { - if(maRanges[i]->aStart < aAddr) - aAddr = maRanges[i]->aStart; + if(maRanges[i].aStart < *pAddr) + pAddr = &maRanges[i].aStart; } - return aAddr; + return *pAddr; } ScRangeList ScRangeList::GetIntersectedRange(const ScRange& rRange) const @@ -1197,12 +1160,12 @@ ScRangeList ScRangeList::GetIntersectedRange(const ScRange& rRange) const for(const_iterator itr = maRanges.begin(), itrEnd = maRanges.end(); itr != itrEnd; ++itr) { - if((*itr)->Intersects(rRange)) + if(itr->Intersects(rRange)) { SCCOL nColStart1, nColEnd1, nColStart2, nColEnd2; SCROW nRowStart1, nRowEnd1, nRowStart2, nRowEnd2; SCTAB nTabStart1, nTabEnd1, nTabStart2, nTabEnd2; - (*itr)->GetVars(nColStart1, nRowStart1, nTabStart1, + itr->GetVars(nColStart1, nRowStart1, nTabStart1, nColEnd1, nRowEnd1, nTabEnd1); rRange.GetVars(nColStart2, nRowStart2, nTabStart2, nColEnd2, nRowEnd2, nTabEnd2); diff --git a/sc/source/core/tool/rangeutl.cxx b/sc/source/core/tool/rangeutl.cxx index 67bd9354894a..153fc21ca3ff 100644 --- a/sc/source/core/tool/rangeutl.cxx +++ b/sc/source/core/tool/rangeutl.cxx @@ -542,13 +542,13 @@ bool ScRangeStringConverter::GetRangeListFromString( sal_Int32 nOffset = 0; while( nOffset >= 0 ) { - std::unique_ptr<ScRange> pRange( new ScRange ); + ScRange aRange; if ( - GetRangeFromString( *pRange, rRangeListStr, pDocument, eConv, nOffset, cSeparator, cQuote ) && + GetRangeFromString( aRange, rRangeListStr, pDocument, eConv, nOffset, cSeparator, cQuote ) && (nOffset >= 0) ) { - rRangeList.push_back( pRange.release() ); + rRangeList.push_back( aRange ); } else if (nOffset > -1) bRet = false; @@ -644,9 +644,8 @@ void ScRangeStringConverter::GetStringFromRangeList( { for( size_t nIndex = 0, nCount = pRangeList->size(); nIndex < nCount; nIndex++ ) { - const ScRange* pRange = (*pRangeList)[nIndex]; - if( pRange ) - GetStringFromRange( sRangeListStr, *pRange, pDocument, eConv, cSeparator, true ); + const ScRange & rRange = (*pRangeList)[nIndex]; + GetStringFromRange( sRangeListStr, rRange, pDocument, eConv, cSeparator, true ); } } rString = sRangeListStr; diff --git a/sc/source/core/tool/reftokenhelper.cxx b/sc/source/core/tool/reftokenhelper.cxx index d1422f1ab266..af6960e1cd48 100644 --- a/sc/source/core/tool/reftokenhelper.cxx +++ b/sc/source/core/tool/reftokenhelper.cxx @@ -163,7 +163,7 @@ void ScRefTokenHelper::getRangeListFromTokens( { ScRange aRange; getRangeFromToken(aRange, *itr, rPos); - rRangeList.Append(aRange); + rRangeList.push_back(aRange); } } @@ -187,13 +187,9 @@ void ScRefTokenHelper::getTokensFromRangeList(vector<ScTokenRef>& pTokens, const aTokens.reserve(nCount); for (size_t i = 0; i < nCount; ++i) { - const ScRange* pRange = rRanges[i]; - if (!pRange) - // failed. - return; - + const ScRange & rRange = rRanges[i]; ScTokenRef pToken; - ScRefTokenHelper::getTokenFromRange(pToken,* pRange); + ScRefTokenHelper::getTokenFromRange(pToken, rRange); aTokens.push_back(pToken); } pTokens.swap(aTokens); diff --git a/sc/source/filter/excel/excform.cxx b/sc/source/filter/excel/excform.cxx index 499c315baf26..b7c7afab7ba6 100644 --- a/sc/source/filter/excel/excform.cxx +++ b/sc/source/filter/excel/excform.cxx @@ -1423,7 +1423,7 @@ void ExcelToSc::GetAbsRefs( ScRangeList& rRangeList, XclImpStream& rStrm, std::s nRow1 &= 0x3FFF; nRow2 &= 0x3FFF; if( GetAddressConverter().ConvertRange( aScRange, XclRange( nCol1, nRow1, nCol2, nRow2 ), nTab1, nTab2, true ) ) - rRangeList.Append( aScRange ); + rRangeList.push_back( aScRange ); } break; diff --git a/sc/source/filter/excel/excform8.cxx b/sc/source/filter/excel/excform8.cxx index ccd2211a275e..515e89ca2c53 100644 --- a/sc/source/filter/excel/excform8.cxx +++ b/sc/source/filter/excel/excform8.cxx @@ -1580,7 +1580,7 @@ void ExcelToSc8::GetAbsRefs( ScRangeList& r, XclImpStream& aIn, std::size_t nLen nCol1 &= 0x3FFF; nCol2 &= 0x3FFF; if( GetAddressConverter().ConvertRange( aScRange, XclRange( nCol1, nRow1, nCol2, nRow2 ), nTab1, nTab2, true ) ) - r.Append( aScRange ); + r.push_back( aScRange ); } break; case 0x1C: // Error Value [314 266] diff --git a/sc/source/filter/excel/xecontent.cxx b/sc/source/filter/excel/xecontent.cxx index 7eb0f6854530..473200a13c5a 100644 --- a/sc/source/filter/excel/xecontent.cxx +++ b/sc/source/filter/excel/xecontent.cxx @@ -258,7 +258,7 @@ void XclExpMergedcells::AppendRange( const ScRange& rRange, sal_uInt32 nBaseXFId { if( GetBiff() == EXC_BIFF8 ) { - maMergedRanges.Append( rRange ); + maMergedRanges.push_back( rRange ); maBaseXFIds.push_back( nBaseXFId ); } } @@ -270,8 +270,8 @@ sal_uInt32 XclExpMergedcells::GetBaseXFId( const ScAddress& rPos ) const ScRangeList& rNCRanges = const_cast< ScRangeList& >( maMergedRanges ); for ( size_t i = 0, nRanges = rNCRanges.size(); i < nRanges; ++i, ++aIt ) { - const ScRange* pScRange = rNCRanges[ i ]; - if( pScRange->In( rPos ) ) + const ScRange & rScRange = rNCRanges[ i ]; + if( rScRange.In( rPos ) ) return *aIt; } return EXC_XFID_NOTFOUND; @@ -308,12 +308,10 @@ void XclExpMergedcells::SaveXml( XclExpXmlStream& rStrm ) FSEND ); for( size_t i = 0; i < nCount; ++i ) { - if( const ScRange* pRange = maMergedRanges[ i ] ) - { - rWorksheet->singleElement( XML_mergeCell, - XML_ref, XclXmlUtils::ToOString( *pRange ).getStr(), + const ScRange & rRange = maMergedRanges[ i ]; + rWorksheet->singleElement( XML_mergeCell, + XML_ref, XclXmlUtils::ToOString( rRange ).getStr(), FSEND ); - } } rWorksheet->endElement( XML_mergeCells ); } @@ -540,9 +538,9 @@ XclExpLabelranges::XclExpLabelranges( const XclExpRoot& rRoot ) : // row labels only over 1 column (restriction of Excel97/2000/XP) for ( size_t i = 0, nRanges = maRowRanges.size(); i < nRanges; ++i ) { - ScRange* pScRange = maRowRanges[ i ]; - if( pScRange->aStart.Col() != pScRange->aEnd.Col() ) - pScRange->aEnd.SetCol( pScRange->aStart.Col() ); + ScRange & rScRange = maRowRanges[ i ]; + if( rScRange.aStart.Col() != rScRange.aEnd.Col() ) + rScRange.aEnd.SetCol( rScRange.aStart.Col() ); } // col label ranges FillRangeList( maColRanges, rRoot.GetDoc().GetColNameRangesRef(), nScTab ); @@ -556,7 +554,7 @@ void XclExpLabelranges::FillRangeList( ScRangeList& rScRanges, ScRangePair* pRangePair = (*xLabelRangesRef)[i]; const ScRange& rScRange = pRangePair->GetRange( 0 ); if( rScRange.aStart.Tab() == nScTab ) - rScRanges.Append( rScRange ); + rScRanges.push_back( rScRange ); } } @@ -1345,8 +1343,8 @@ XclExpColorScale::XclExpColorScale( const XclExpRoot& rRoot, const ScColorScaleF XclExpRoot( rRoot ), mnPriority( nPriority ) { - const ScRange* pRange = rFormat.GetRange().front(); - ScAddress aAddr = pRange->aStart; + const ScRange & rRange = rFormat.GetRange().front(); + ScAddress aAddr = rRange.aStart; for(ScColorScaleEntries::const_iterator itr = rFormat.begin(); itr != rFormat.end(); ++itr) { @@ -1385,8 +1383,8 @@ XclExpDataBar::XclExpDataBar( const XclExpRoot& rRoot, const ScDataBarFormat& rF mnPriority( nPriority ), maGUID(rGUID) { - const ScRange* pRange = rFormat.GetRange().front(); - ScAddress aAddr = pRange->aStart; + const ScRange & rRange = rFormat.GetRange().front(); + ScAddress aAddr = rRange.aStart; // exact position is not important, we allow only absolute refs mpCfvoLowerLimit.reset( new XclExpCfvo( GetRoot(), *mrFormat.GetDataBarData()->mpLowerLimit.get(), aAddr, true ) ); mpCfvoUpperLimit.reset( new XclExpCfvo( GetRoot(), *mrFormat.GetDataBarData()->mpUpperLimit.get(), aAddr, false ) ); @@ -1438,8 +1436,8 @@ XclExpIconSet::XclExpIconSet( const XclExpRoot& rRoot, const ScIconSetFormat& rF mrFormat( rFormat ), mnPriority( nPriority ) { - const ScRange* pRange = rFormat.GetRange().front(); - ScAddress aAddr = pRange->aStart; + const ScRange & rRange = rFormat.GetRange().front(); + ScAddress aAddr = rRange.aStart; for (auto const& itr : rFormat) { // exact position is not important, we allow only absolute refs diff --git a/sc/source/filter/excel/xeextlst.cxx b/sc/source/filter/excel/xeextlst.cxx index 52d90b14867e..0fa28198e2e2 100644 --- a/sc/source/filter/excel/xeextlst.cxx +++ b/sc/source/filter/excel/xeextlst.cxx @@ -308,7 +308,7 @@ XclExpExtConditionalFormatting::XclExpExtConditionalFormatting( const XclExpRoot XclExpRoot(rRoot), maRange(rRange) { - ScAddress aAddr = maRange.front()->aStart; + ScAddress aAddr = maRange.front().aStart; for (auto itr = rData.begin(), itrEnd = rData.end(); itr != itrEnd; ++itr) { const ScFormatEntry* pEntry = itr->pEntry; diff --git a/sc/source/filter/excel/xeformula.cxx b/sc/source/filter/excel/xeformula.cxx index dab92a0ba6a9..3cd1bd9a06bf 100644 --- a/sc/source/filter/excel/xeformula.cxx +++ b/sc/source/filter/excel/xeformula.cxx @@ -2630,7 +2630,7 @@ XclTokenArrayRef XclExpFormulaCompiler::CreateFormula( XclFormulaType eType, con { if( nIdx > 0 ) aScTokArr.AddOpCode( ocUnion ); - lclPutRangeToTokenArray( aScTokArr, *rScRanges[ nIdx ], nCurrScTab, b3DRefOnly ); + lclPutRangeToTokenArray( aScTokArr, rScRanges[ nIdx ], nCurrScTab, b3DRefOnly ); } return mxImpl->CreateFormula( eType, aScTokArr ); } diff --git a/sc/source/filter/excel/xehelper.cxx b/sc/source/filter/excel/xehelper.cxx index d9f7e3806e28..0d9d7b473462 100644 --- a/sc/source/filter/excel/xehelper.cxx +++ b/sc/source/filter/excel/xehelper.cxx @@ -250,8 +250,8 @@ void XclExpAddressConverter::ValidateRangeList( ScRangeList& rScRanges, bool bWa { for ( size_t nRange = rScRanges.size(); nRange > 0; ) { - ScRange* pScRange = rScRanges[ --nRange ]; - if( !CheckRange( *pScRange, bWarn ) ) + ScRange & rScRange = rScRanges[ --nRange ]; + if( !CheckRange( rScRange, bWarn ) ) rScRanges.Remove(nRange); } } @@ -262,12 +262,10 @@ void XclExpAddressConverter::ConvertRangeList( XclRangeList& rXclRanges, rXclRanges.clear(); for( size_t nPos = 0, nCount = rScRanges.size(); nPos < nCount; ++nPos ) { - if( const ScRange* pScRange = rScRanges[ nPos ] ) - { - XclRange aXclRange( ScAddress::UNINITIALIZED ); - if( ConvertRange( aXclRange, *pScRange, bWarn ) ) - rXclRanges.push_back( aXclRange ); - } + const ScRange & rScRange = rScRanges[ nPos ]; + XclRange aXclRange( ScAddress::UNINITIALIZED ); + if( ConvertRange( aXclRange, rScRange, bWarn ) ) + rXclRanges.push_back( aXclRange ); } } diff --git a/sc/source/filter/excel/xename.cxx b/sc/source/filter/excel/xename.cxx index 7b315d195476..d0f957924a99 100644 --- a/sc/source/filter/excel/xename.cxx +++ b/sc/source/filter/excel/xename.cxx @@ -602,7 +602,7 @@ void XclExpNameManagerImpl::CreateBuiltInNames() aRange.aStart.SetTab( nScTab ); aRange.aEnd.SetTab( nScTab ); aRange.PutInOrder(); - aRangeList.Append( aRange ); + aRangeList.push_back( aRange ); } // create the NAME record (do not warn if ranges are shrunken) GetAddressConverter().ValidateRangeList( aRangeList, false ); @@ -615,12 +615,12 @@ void XclExpNameManagerImpl::CreateBuiltInNames() ScRangeList aTitleList; // repeated columns if( const ScRange* pColRange = rDoc.GetRepeatColRange( nScTab ) ) - aTitleList.Append( ScRange( + aTitleList.push_back( ScRange( pColRange->aStart.Col(), 0, nScTab, pColRange->aEnd.Col(), GetXclMaxPos().Row(), nScTab ) ); // repeated rows if( const ScRange* pRowRange = rDoc.GetRepeatRowRange( nScTab ) ) - aTitleList.Append( ScRange( + aTitleList.push_back( ScRange( 0, pRowRange->aStart.Row(), nScTab, GetXclMaxPos().Col(), pRowRange->aEnd.Row(), nScTab ) ); // create the NAME record @@ -695,7 +695,7 @@ sal_uInt16 XclExpNameManager::InsertBuiltInName( sal_Unicode cBuiltIn, const ScR if( !rRangeList.empty() ) { XclTokenArrayRef xTokArr = GetFormulaCompiler().CreateFormula( EXC_FMLATYPE_NAME, rRangeList ); - nNameIdx = mxImpl->InsertBuiltInName( cBuiltIn, xTokArr, rRangeList.front()->aStart.Tab(), rRangeList ); + nNameIdx = mxImpl->InsertBuiltInName( cBuiltIn, xTokArr, rRangeList.front().aStart.Tab(), rRangeList ); } return nNameIdx; } diff --git a/sc/source/filter/excel/xestream.cxx b/sc/source/filter/excel/xestream.cxx index 537c494cde52..5a1c4a96df8a 100644 --- a/sc/source/filter/excel/xestream.cxx +++ b/sc/source/filter/excel/xestream.cxx @@ -778,7 +778,7 @@ OString XclXmlUtils::ToOString( const XclRangeList& rRanges ) for( XclRangeVector::const_iterator i = rRanges.begin(), end = rRanges.end(); i != end; ++i ) { - aRanges.Append( lcl_ToRange( *i ) ); + aRanges.push_back( lcl_ToRange( *i ) ); } return ToOString( aRanges ); } diff --git a/sc/source/filter/excel/xicontent.cxx b/sc/source/filter/excel/xicontent.cxx index 5c01b7e82c8c..91244a77bca1 100644 --- a/sc/source/filter/excel/xicontent.cxx +++ b/sc/source/filter/excel/xicontent.cxx @@ -448,7 +448,6 @@ void XclImpLabelranges::ReadLabelranges( XclImpStream& rStrm ) SCTAB nScTab = rRoot.GetCurrScTab(); XclImpAddressConverter& rAddrConv = rRoot.GetAddressConverter(); ScRangePairListRef xLabelRangesRef; - const ScRange* pScRange = nullptr; XclRangeList aRowXclRanges, aColXclRanges; rStrm >> aRowXclRanges >> aColXclRanges; @@ -459,8 +458,8 @@ void XclImpLabelranges::ReadLabelranges( XclImpStream& rStrm ) xLabelRangesRef = rDoc.GetRowNameRangesRef(); for ( size_t i = 0, nRanges = aRowScRanges.size(); i < nRanges; ++i ) { - pScRange = aRowScRanges[ i ]; - ScRange aDataRange( *pScRange ); + const ScRange & rScRange = aRowScRanges[ i ]; + ScRange aDataRange( rScRange ); if( aDataRange.aEnd.Col() < MAXCOL ) { aDataRange.aStart.SetCol( aDataRange.aEnd.Col() + 1 ); @@ -471,7 +470,7 @@ void XclImpLabelranges::ReadLabelranges( XclImpStream& rStrm ) aDataRange.aEnd.SetCol( aDataRange.aStart.Col() - 1 ); aDataRange.aStart.SetCol( 0 ); } - xLabelRangesRef->Append( ScRangePair( *pScRange, aDataRange ) ); + xLabelRangesRef->Append( ScRangePair( rScRange, aDataRange ) ); } // column label ranges @@ -481,8 +480,8 @@ void XclImpLabelranges::ReadLabelranges( XclImpStream& rStrm ) for ( size_t i = 0, nRanges = aColScRanges.size(); i < nRanges; ++i ) { - pScRange = aColScRanges[ i ]; - ScRange aDataRange( *pScRange ); + const ScRange & rScRange = aColScRanges[ i ]; + ScRange aDataRange( rScRange ); if( aDataRange.aEnd.Row() < MAXROW ) { aDataRange.aStart.SetRow( aDataRange.aEnd.Row() + 1 ); @@ -493,7 +492,7 @@ void XclImpLabelranges::ReadLabelranges( XclImpStream& rStrm ) aDataRange.aEnd.SetRow( aDataRange.aStart.Row() - 1 ); aDataRange.aStart.SetRow( 0 ); } - xLabelRangesRef->Append( ScRangePair( *pScRange, aDataRange ) ); + xLabelRangesRef->Append( ScRangePair( rScRange, aDataRange ) ); } } @@ -651,7 +650,7 @@ void XclImpCondFormat::ReadCF( XclImpStream& rStrm ) // *** formulas *** - const ScAddress& rPos = maRanges.front()->aStart; // assured above that maRanges is not empty + const ScAddress& rPos = maRanges.front().aStart; // assured above that maRanges is not empty ExcelToSc& rFmlaConv = GetOldFmlaConverter(); ::std::unique_ptr< ScTokenArray > xTokArr1; @@ -690,7 +689,7 @@ void XclImpCondFormat::ReadCF( XclImpStream& rStrm ) { mxScCondFmt.reset( new ScConditionalFormat( 0/*nKey*/, &GetDocRef() ) ); if(maRanges.size() > 1) - maRanges.Join(*maRanges[0], true); + maRanges.Join(maRanges[0], true); mxScCondFmt->SetRange(maRanges); } @@ -705,7 +704,7 @@ void XclImpCondFormat::Apply() { ScDocument& rDoc = GetDoc(); - SCTAB nTab = maRanges.front()->aStart.Tab(); + SCTAB nTab = maRanges.front().aStart.Tab(); sal_uLong nKey = rDoc.AddCondFormat( mxScCondFmt->Clone(), nTab ); rDoc.AddCondFormatData( maRanges, nTab, nKey ); @@ -888,7 +887,7 @@ void XclImpValidationManager::ReadDV( XclImpStream& rStrm ) return; // first range for base address for relative references - const ScRange& rScRange = *aScRanges.front(); // aScRanges is not empty + const ScRange& rScRange = aScRanges.front(); // aScRanges is not empty // process string list of a list validity (convert to list of string tokens) if( xTokArr1.get() && (eValMode == SC_VALID_LIST) && ::get_flag( nFlags, EXC_DV_STRINGLIST ) ) @@ -938,9 +937,9 @@ void XclImpValidationManager::Apply() // apply all ranges for ( size_t i = 0, nRanges = rItem.maRanges.size(); i < nRanges; ++i ) { - const ScRange* pScRange = rItem.maRanges[ i ]; - rDoc.ApplyPatternAreaTab( pScRange->aStart.Col(), pScRange->aStart.Row(), - pScRange->aEnd.Col(), pScRange->aEnd.Row(), pScRange->aStart.Tab(), aPattern ); + const ScRange & rScRange = rItem.maRanges[ i ]; + rDoc.ApplyPatternAreaTab( rScRange.aStart.Col(), rScRange.aStart.Row(), + rScRange.aEnd.Col(), rScRange.aEnd.Row(), rScRange.aStart.Tab(), aPattern ); } } maDVItems.clear(); diff --git a/sc/source/filter/excel/xiescher.cxx b/sc/source/filter/excel/xiescher.cxx index f38c13f75ca0..94b2d0130d0b 100644 --- a/sc/source/filter/excel/xiescher.cxx +++ b/sc/source/filter/excel/xiescher.cxx @@ -1927,8 +1927,8 @@ void XclImpControlHelper::ReadCellLinkFormula( XclImpStream& rStrm, bool bWithBo // Use first cell of first range if ( !aScRanges.empty() ) { - const ScRange* pScRange = aScRanges.front(); - mxCellLink.reset( new ScAddress( pScRange->aStart ) ); + const ScRange & rScRange = aScRanges.front(); + mxCellLink.reset( new ScAddress( rScRange.aStart ) ); } } @@ -1939,8 +1939,8 @@ void XclImpControlHelper::ReadSourceRangeFormula( XclImpStream& rStrm, bool bWit // Use first range if ( !aScRanges.empty() ) { - const ScRange* pScRange = aScRanges.front(); - mxSrcRange.reset( new ScRange( *pScRange ) ); + const ScRange & rScRange = aScRanges.front(); + mxSrcRange.reset( new ScRange( rScRange ) ); } } diff --git a/sc/source/filter/excel/xihelper.cxx b/sc/source/filter/excel/xihelper.cxx index 3633a01a32eb..c2b65d12745d 100644 --- a/sc/source/filter/excel/xihelper.cxx +++ b/sc/source/filter/excel/xihelper.cxx @@ -131,7 +131,7 @@ void XclImpAddressConverter::ConvertRangeList( ScRangeList& rScRanges, { ScRange aScRange( ScAddress::UNINITIALIZED ); if( ConvertRange( aScRange, *aIt, nScTab, nScTab, bWarn ) ) - rScRanges.Append( aScRange ); + rScRanges.push_back( aScRange ); } } diff --git a/sc/source/filter/excel/xistyle.cxx b/sc/source/filter/excel/xistyle.cxx index 1059f886d38b..75100c81b557 100644 --- a/sc/source/filter/excel/xistyle.cxx +++ b/sc/source/filter/excel/xistyle.cxx @@ -1905,11 +1905,11 @@ void XclImpXFRangeBuffer::SetXF( const ScAddress& rScPos, sal_uInt16 nXFIndex, X if( pXF && ((pXF->GetHorAlign() == EXC_XF_HOR_CENTER_AS) || (pXF->GetHorAlign() == EXC_XF_HOR_FILL)) ) { // expand last merged range if this attribute is set repeatedly - ScRange* pRange = maMergeList.empty() ? nullptr : maMergeList.back(); + ScRange* pRange = maMergeList.empty() ? nullptr : &maMergeList.back(); if (pRange && (pRange->aEnd.Row() == nScRow) && (pRange->aEnd.Col() + 1 == nScCol) && (eMode == xlXFModeBlank)) pRange->aEnd.IncCol(); else if( eMode != xlXFModeBlank ) // do not merge empty cells - maMergeList.Append( ScRange( nScCol, nScRow, 0 ) ); + maMergeList.push_back( ScRange( nScCol, nScRow, 0 ) ); } } } @@ -1970,7 +1970,7 @@ void XclImpXFRangeBuffer::SetHyperlink( const XclRange& rXclRange, const OUStrin void XclImpXFRangeBuffer::SetMerge( SCCOL nScCol1, SCROW nScRow1, SCCOL nScCol2, SCROW nScRow2 ) { if( (nScCol1 < nScCol2) || (nScRow1 < nScRow2) ) - maMergeList.Append( ScRange( nScCol1, nScRow1, 0, nScCol2, nScRow2, 0 ) ); + maMergeList.push_back( ScRange( nScCol1, nScRow1, 0, nScCol2, nScRow2, 0 ) ); } void XclImpXFRangeBuffer::Finalize() @@ -2029,17 +2029,17 @@ void XclImpXFRangeBuffer::Finalize() // apply cell merging for ( size_t i = 0, nRange = maMergeList.size(); i < nRange; ++i ) { - const ScRange* pRange = maMergeList[ i ]; - const ScAddress& rStart = pRange->aStart; - const ScAddress& rEnd = pRange->aEnd; + const ScRange & rRange = maMergeList[ i ]; + const ScAddress& rStart = rRange.aStart; + const ScAddress& rEnd = rRange.aEnd; bool bMultiCol = rStart.Col() != rEnd.Col(); bool bMultiRow = rStart.Row() != rEnd.Row(); // set correct right border if( bMultiCol ) - SetBorderLine( *pRange, nScTab, SvxBoxItemLine::RIGHT ); + SetBorderLine( rRange, nScTab, SvxBoxItemLine::RIGHT ); // set correct lower border if( bMultiRow ) - SetBorderLine( *pRange, nScTab, SvxBoxItemLine::BOTTOM ); + SetBorderLine( rRange, nScTab, SvxBoxItemLine::BOTTOM ); // do merge if( bMultiCol || bMultiRow ) rDoc.getDoc().DoMerge( nScTab, rStart.Col(), rStart.Row(), rEnd.Col(), rEnd.Row() ); diff --git a/sc/source/filter/html/htmlimp.cxx b/sc/source/filter/html/htmlimp.cxx index 40655830d47e..a5f1f11abe4b 100644 --- a/sc/source/filter/html/htmlimp.cxx +++ b/sc/source/filter/html/htmlimp.cxx @@ -221,7 +221,7 @@ OUString ScHTMLImport::GetHTMLRangeNameList( const ScDocument* pDoc, const OUStr if( pRangeData->IsReference( aRange ) && !aRangeList.In( aRange ) ) { aNewName = ScGlobal::addToken(aNewName, aToken, ';'); - aRangeList.Append( aRange ); + aRangeList.push_back( aRange ); } } else diff --git a/sc/source/filter/html/htmlpars.cxx b/sc/source/filter/html/htmlpars.cxx index fd596fbcf173..e53eec4d04fe 100644 --- a/sc/source/filter/html/htmlpars.cxx +++ b/sc/source/filter/html/htmlpars.cxx @@ -445,10 +445,10 @@ void ScHTMLLayoutParser::SkipLocked( ScEEParseEntry* pE, bool bJoin ) bAgain = false; for ( size_t i = 0, nRanges = xLockedList->size(); i < nRanges; ++i ) { - ScRange* pR = (*xLockedList)[i]; - if ( pR->Intersects( aRange ) ) + ScRange & rR = (*xLockedList)[i]; + if ( rR.Intersects( aRange ) ) { - pE->nCol = pR->aEnd.Col() + 1; + pE->nCol = rR.aEnd.Col() + 1; SCCOL nTmp = pE->nCol + pE->nColOverlap - 1; if ( pE->nCol > MAXCOL || nTmp > MAXCOL ) bBadCol = true; @@ -2428,7 +2428,7 @@ void ScHTMLTable::InsertNewCell( const ScHTMLSize& rSpanSize ) } if( rSpanSize.mnRows > 1 ) { - maVMergedCells.Append( aNewRange ); + maVMergedCells.push_back( aNewRange ); /* Do not insert vertically merged ranges into maUsedCells yet, because they may be shrunken (see above). The final vertically merged ranges are inserted in FillEmptyCells(). */ @@ -2436,7 +2436,7 @@ void ScHTMLTable::InsertNewCell( const ScHTMLSize& rSpanSize ) else { if( rSpanSize.mnCols > 1 ) - maHMergedCells.Append( aNewRange ); + maHMergedCells.push_back( aNewRange ); /* Insert horizontally merged ranges and single cells into maUsedCells, they will not be changed anymore. */ maUsedCells.Join( aNewRange ); @@ -2589,8 +2589,8 @@ void ScHTMLTable::FillEmptyCells() // insert the final vertically merged ranges into maUsedCells for ( size_t i = 0, nRanges = maVMergedCells.size(); i < nRanges; ++i ) { - ScRange* pRange = maVMergedCells[ i ]; - maUsedCells.Join( *pRange ); + ScRange & rRange = maVMergedCells[ i ]; + maUsedCells.Join( rRange ); } for( ScAddress aAddr; aAddr.Row() < maSize.mnRows; aAddr.IncRow() ) diff --git a/sc/source/filter/oox/addressconverter.cxx b/sc/source/filter/oox/addressconverter.cxx index 9f77412e3c7d..987cef40c99c 100644 --- a/sc/source/filter/oox/addressconverter.cxx +++ b/sc/source/filter/oox/addressconverter.cxx @@ -421,7 +421,7 @@ bool AddressConverter::convertToCellRange( ScRange& orRange, void AddressConverter::validateCellRangeList( ScRangeList& orRanges, bool bTrackOverflow ) { for( size_t nIndex = orRanges.size(); nIndex > 0; --nIndex ) - if( !validateCellRange( *orRanges[ nIndex - 1 ], true, bTrackOverflow ) ) + if( !validateCellRange( orRanges[ nIndex - 1 ], true, bTrackOverflow ) ) orRanges.Remove( nIndex - 1 ); } @@ -435,7 +435,7 @@ void AddressConverter::convertToCellRangeList( ScRangeList& orRanges, { OUString aToken = rString.getToken( 0, ' ', nPos ); if( !aToken.isEmpty() && convertToCellRange( aRange, aToken, nSheet, true, bTrackOverflow ) ) - orRanges.Append(aRange); + orRanges.push_back(aRange); } } @@ -445,7 +445,7 @@ void AddressConverter::convertToCellRangeList( ScRangeList& orRanges, ScRange aRange; for( ::std::vector< BinRange >::const_iterator aIt = rBinRanges.begin(), aEnd = rBinRanges.end(); aIt != aEnd; ++aIt ) if( convertToCellRange( aRange, *aIt, nSheet, true, bTrackOverflow ) ) - orRanges.Append( aRange ); + orRanges.push_back( aRange ); } Sequence<CellRangeAddress> AddressConverter::toApiSequence(const ScRangeList& orRanges) @@ -455,7 +455,7 @@ Sequence<CellRangeAddress> AddressConverter::toApiSequence(const ScRangeList& or CellRangeAddress* pApiRanges = aRangeSequence.getArray(); for (size_t i = 0; i < nSize; ++i) { - ScUnoConversion::FillApiRange(pApiRanges[i], *orRanges[i]); + ScUnoConversion::FillApiRange(pApiRanges[i], orRanges[i]); } return aRangeSequence; } diff --git a/sc/source/filter/oox/condformatbuffer.cxx b/sc/source/filter/oox/condformatbuffer.cxx index 175b4a43798e..22f2445aa33c 100644 --- a/sc/source/filter/oox/condformatbuffer.cxx +++ b/sc/source/filter/oox/condformatbuffer.cxx @@ -1117,7 +1117,7 @@ void CondFormatBuffer::finalizeImport() ScDocument* pDoc = &getScDocument(); const ScRangeList& rRange = (*itr)->getRange(); - SCTAB nTab = rRange.front()->aStart.Tab(); + SCTAB nTab = rRange.front().aStart.Tab(); ScConditionalFormat* pFormat = findFormatByRange(rRange, pDoc, nTab); if (!pFormat) { diff --git a/sc/source/filter/oox/defnamesbuffer.cxx b/sc/source/filter/oox/defnamesbuffer.cxx index 5b6adf58801b..84bba7249227 100644 --- a/sc/source/filter/oox/defnamesbuffer.cxx +++ b/sc/source/filter/oox/defnamesbuffer.cxx @@ -378,7 +378,7 @@ void DefinedName::convertFormula( const css::uno::Sequence<css::sheet::ExternalL const ScAddress& rMaxPos = getAddressConverter().getMaxAddress(); for (size_t i = 0, nSize = aTitleRanges.size(); i < nSize; ++i) { - const ScRange& rRange = *aTitleRanges[i]; + const ScRange& rRange = aTitleRanges[i]; bool bFullRow = (rRange.aStart.Col() == 0) && ( rRange.aEnd.Col() >= rMaxPos.Col() ); bool bFullCol = (rRange.aStart.Row() == 0) && ( rRange.aEnd.Row() >= rMaxPos.Row() ); if( !bHasRowTitles && bFullRow && !bFullCol ) diff --git a/sc/source/filter/oox/extlstcontext.cxx b/sc/source/filter/oox/extlstcontext.cxx index b5b39510ed76..52fc82a73650 100644 --- a/sc/source/filter/oox/extlstcontext.cxx +++ b/sc/source/filter/oox/extlstcontext.cxx @@ -163,8 +163,8 @@ void ExtConditionalFormattingContext::onEndElement() SCTAB nTab = getSheetIndex(); for (size_t i = 0; i < aRange.size(); ++i) { - aRange[i]->aStart.SetTab(nTab); - aRange[i]->aEnd.SetTab(nTab); + aRange[i].aStart.SetTab(nTab); + aRange[i].aEnd.SetTab(nTab); } std::vector< std::unique_ptr<ExtCfCondFormat> >& rExtFormats = getCondFormats().importExtCondFormat(); diff --git a/sc/source/filter/oox/formulabase.cxx b/sc/source/filter/oox/formulabase.cxx index 2cb2ae9d0ddc..476f0deba2cd 100644 --- a/sc/source/filter/oox/formulabase.cxx +++ b/sc/source/filter/oox/formulabase.cxx @@ -1499,7 +1499,7 @@ TokenToRangeListState lclProcessRef( ScRangeList& orRanges, const Any& rData, sa ScAddress aAddress; // ignore invalid addresses (with #REF! errors), but do not stop parsing if( lclConvertToCellAddress( aAddress, aSingleRef, nForbiddenFlags, nFilterBySheet ) ) - orRanges.Append( ScRange(aAddress, aAddress) ); + orRanges.push_back( ScRange(aAddress, aAddress) ); return STATE_REF; } ComplexReference aComplexRef; @@ -1508,7 +1508,7 @@ TokenToRangeListState lclProcessRef( ScRangeList& orRanges, const Any& rData, sa ScRange aRange; // ignore invalid ranges (with #REF! errors), but do not stop parsing if( lclConvertToCellRange( aRange, aComplexRef, nForbiddenFlags, nFilterBySheet ) ) - orRanges.Append( aRange ); + orRanges.push_back( aRange ); return STATE_REF; } return STATE_ERROR; @@ -1610,7 +1610,7 @@ bool FormulaProcessorBase::extractCellRange( ScRange& orRange, lclProcessRef( aRanges, extractReference( rTokens ), -1 ); if( !aRanges.empty() ) { - orRange = *aRanges.front(); + orRange = aRanges.front(); return true; } return false; diff --git a/sc/source/filter/oox/scenariobuffer.cxx b/sc/source/filter/oox/scenariobuffer.cxx index 33dd467472df..aaa00d9720d4 100644 --- a/sc/source/filter/oox/scenariobuffer.cxx +++ b/sc/source/filter/oox/scenariobuffer.cxx @@ -108,7 +108,7 @@ void Scenario::finalizeImport() ScRangeList aRanges; for( ScenarioCellVector::iterator aIt = maCells.begin(), aEnd = maCells.end(); aIt != aEnd; ++aIt ) if( !aIt->mbDeleted && rAddrConv.checkCellAddress( aIt->maPos, true ) ) - aRanges.Append( ScRange(aIt->maPos, aIt->maPos) ); + aRanges.push_back( ScRange(aIt->maPos, aIt->maPos) ); if( !aRanges.empty() && !maModel.maName.isEmpty() ) try { diff --git a/sc/source/filter/oox/sheetdatabuffer.cxx b/sc/source/filter/oox/sheetdatabuffer.cxx index d9d98b84532d..cf44072cd9e3 100644 --- a/sc/source/filter/oox/sheetdatabuffer.cxx +++ b/sc/source/filter/oox/sheetdatabuffer.cxx @@ -336,7 +336,7 @@ void addIfNotInMyMap( const StylesBuffer& rStyles, std::map< FormatKeyPair, ScRa // add ranges from the rangelist to the existing rangelist for the // matching style ( should we check if they overlap ? ) for (size_t i = 0, nSize = rRangeList.size(); i < nSize; ++i) - it->second.Append(*rRangeList[i]); + it->second.push_back(rRangeList[i]); return; } } @@ -423,7 +423,7 @@ void SheetDataBuffer::finalizeImport() { const ScRangeList& rRanges( it->second ); for (size_t i = 0, nSize = rRanges.size(); i < nSize; ++i) - addColXfStyle( it->first.first, it->first.second, *rRanges[i]); + addColXfStyle( it->first.first, it->first.second, rRanges[i]); } for ( std::map< sal_Int32, std::vector< ValueRange > >::iterator it = maXfIdRowRangeList.begin(), it_end = maXfIdRowRangeList.end(); it != it_end; ++it ) @@ -660,7 +660,7 @@ void SheetDataBuffer::setCellFormat( const CellModel& rModel ) if( rModel.mnXfId >= 0 ) { ScRangeList& rRangeList = maXfIdRangeLists[ XfIdNumFmtKey( rModel.mnXfId, -1 ) ]; - ScRange* pLastRange = rRangeList.empty() ? nullptr : rRangeList.back(); + ScRange* pLastRange = rRangeList.empty() ? nullptr : &rRangeList.back(); /* The xlsx sheet data contains row wise information. * It is sufficient to check if the row range size is one */ @@ -674,28 +674,28 @@ void SheetDataBuffer::setCellFormat( const CellModel& rModel ) } else { - rRangeList.Append(ScRange(rModel.maCellAddr)); - pLastRange = rRangeList.back(); + rRangeList.push_back(ScRange(rModel.maCellAddr)); + pLastRange = &rRangeList.back(); } if (rRangeList.size() > 1) { for (size_t i = rRangeList.size() - 1; i != 0; --i) { - ScRange* pMergeRange = rRangeList[i - 1]; - if (pLastRange->aStart.Tab() != pMergeRange->aStart.Tab()) + ScRange& rMergeRange = rRangeList[i - 1]; + if (pLastRange->aStart.Tab() != rMergeRange.aStart.Tab()) break; /* Try to merge this with the previous range */ - if (pLastRange->aStart.Row() == (pMergeRange->aEnd.Row() + 1) && - pLastRange->aStart.Col() == pMergeRange->aStart.Col() && - pLastRange->aEnd.Col() == pMergeRange->aEnd.Col()) + if (pLastRange->aStart.Row() == (rMergeRange.aEnd.Row() + 1) && + pLastRange->aStart.Col() == rMergeRange.aStart.Col() && + pLastRange->aEnd.Col() == rMergeRange.aEnd.Col()) { - pMergeRange->aEnd.SetRow(pLastRange->aEnd.Row()); + rMergeRange.aEnd.SetRow(pLastRange->aEnd.Row()); rRangeList.Remove(rRangeList.size() - 1); break; } - else if (pLastRange->aStart.Row() > (pMergeRange->aEnd.Row() + 1)) + else if (pLastRange->aStart.Row() > (rMergeRange.aEnd.Row() + 1)) break; // Un-necessary to check with any other rows } } diff --git a/sc/source/filter/xcl97/xcl97rec.cxx b/sc/source/filter/xcl97/xcl97rec.cxx index 7d5c910ff39d..a4ecfd8860fe 100644 --- a/sc/source/filter/xcl97/xcl97rec.cxx +++ b/sc/source/filter/xcl97/xcl97rec.cxx @@ -1382,9 +1382,9 @@ ExcEScenario::ExcEScenario( const XclExpRoot& rRoot, SCTAB nTab ) for( size_t nRange = 0; (nRange < pRList->size()) && bContLoop; nRange++ ) { - const ScRange* pRange = (*pRList)[nRange]; - for( nRow = pRange->aStart.Row(); (nRow <= pRange->aEnd.Row()) && bContLoop; nRow++ ) - for( nCol = pRange->aStart.Col(); (nCol <= pRange->aEnd.Col()) && bContLoop; nCol++ ) + const ScRange & rRange = (*pRList)[nRange]; + for( nRow = rRange.aStart.Row(); (nRow <= rRange.aEnd.Row()) && bContLoop; nRow++ ) + for( nCol = rRange.aStart.Col(); (nCol <= rRange.aEnd.Col()) && bContLoop; nCol++ ) { if( rDoc.HasValueData( nCol, nRow, nTab ) ) { diff --git a/sc/source/filter/xml/xmlcondformat.cxx b/sc/source/filter/xml/xmlcondformat.cxx index 3db4904f99ca..6fdcdee9b5b8 100644 --- a/sc/source/filter/xml/xmlcondformat.cxx +++ b/sc/source/filter/xml/xmlcondformat.cxx @@ -264,7 +264,7 @@ void SAL_CALL ScXMLConditionalFormatContext::endFastElement( sal_Int32 /*nElemen // conditions could be loosened, but I am too tired to think on that right now.) if (pFormat->size() == 1 && pFormat->GetRange().size() == 1 && - pFormat->GetRange()[0]->aStart == aSrcPos && + pFormat->GetRange()[0].aStart == aSrcPos && HasOneSingleFullyRelativeReference( pTokens, aOffsetForSingleRelRef )) { bSingleRelativeReference = true; @@ -327,7 +327,7 @@ void SAL_CALL ScXMLConditionalFormatContext::endFastElement( sal_Int32 /*nElemen // Mark cache entry as fresh, do necessary mangling of it and just return aCacheEntry.mnAge = 0; for (size_t k = 0; k < pFormat->GetRange().size(); ++k) - aCacheEntry.mpFormat->GetRangeList().Join(*(pFormat->GetRange()[k])); + aCacheEntry.mpFormat->GetRangeList().Join(pFormat->GetRange()[k]); return; } } diff --git a/sc/source/filter/xml/xmlsceni.cxx b/sc/source/filter/xml/xmlsceni.cxx index 5a934b0cb222..ed3c8b0dd49b 100644 --- a/sc/source/filter/xml/xmlsceni.cxx +++ b/sc/source/filter/xml/xmlsceni.cxx @@ -114,10 +114,9 @@ void SAL_CALL ScXMLTableScenarioContext::endFastElement( sal_Int32 /*nElement*/ pDoc->SetScenarioData( nCurrTable, sComment, aBorderColor, nFlags ); for( size_t i = 0; i < aScenarioRanges.size(); ++i ) { - ScRange* pRange(aScenarioRanges[ i ]); - if( pRange ) - pDoc->ApplyFlagsTab( pRange->aStart.Col(), pRange->aStart.Row(), - pRange->aEnd.Col(), pRange->aEnd.Row(), nCurrTable, ScMF::Scenario ); + ScRange const & rRange = aScenarioRanges[ i ]; + pDoc->ApplyFlagsTab( rRange.aStart.Col(), rRange.aStart.Row(), + rRange.aEnd.Col(), rRange.aEnd.Row(), nCurrTable, ScMF::Scenario ); } pDoc->SetActiveScenario( nCurrTable, bIsActive ); } diff --git a/sc/source/filter/xml/xmlstyli.cxx b/sc/source/filter/xml/xmlstyli.cxx index 0970b1a15be3..5087bf0591b9 100644 --- a/sc/source/filter/xml/xmlstyli.cxx +++ b/sc/source/filter/xml/xmlstyli.cxx @@ -511,8 +511,8 @@ void XMLTableStyleContext::ApplyCondFormat( const uno::Sequence<table::CellRange size_t n = aRangeList.size(); for(size_t i = 0; i < n; ++i) { - const ScRange* pRange = aRangeList[i]; - rRangeList.Join(*pRange); + const ScRange & rRange = aRangeList[i]; + rRangeList.Join(rRange); } pDoc->AddCondFormatData( aRangeList, nTab, nCondId ); diff --git a/sc/source/filter/xml/xmlsubti.cxx b/sc/source/filter/xml/xmlsubti.cxx index a71d38ed263e..520d484c28a9 100644 --- a/sc/source/filter/xml/xmlsubti.cxx +++ b/sc/source/filter/xml/xmlsubti.cxx @@ -275,7 +275,7 @@ void ScMyTables::AddMatrixRange( nEndColumn, nEndRow, maCurrentCellPos.Tab() ); - maMatrixRangeList.Append(aScRange); + maMatrixRangeList.push_back(aScRange); ScDocumentImport& rDoc = rImport.GetDoc(); ScTokenArray aCode; diff --git a/sc/source/filter/xml/xmltabi.cxx b/sc/source/filter/xml/xmltabi.cxx index 6cfa897a78ba..82e8c9010aac 100644 --- a/sc/source/filter/xml/xmltabi.cxx +++ b/sc/source/filter/xml/xmltabi.cxx @@ -368,7 +368,7 @@ void SAL_CALL ScXMLTableContext::endFastElement(sal_Int32 /*nElement*/) size_t nCount = aRangeList.size(); for (size_t i=0; i< nCount; i++ ) { - pDoc->AddPrintRange( nCurTab, *aRangeList[i] ); + pDoc->AddPrintRange( nCurTab, aRangeList[i] ); } } else if (!bPrintEntireSheet) diff --git a/sc/source/ui/Accessibility/AccessibleCell.cxx b/sc/source/ui/Accessibility/AccessibleCell.cxx index e589d1dbfa24..3093137bb3a2 100644 --- a/sc/source/ui/Accessibility/AccessibleCell.cxx +++ b/sc/source/ui/Accessibility/AccessibleCell.cxx @@ -588,7 +588,7 @@ bool ScAccessibleCell::IsDropdown() SCTAB nRangeCount = aRanges.size(); for (i=0; i<nRangeCount; i++) { - ScRange aRange = *aRanges[i]; + ScRange aRange = aRanges[i]; mpDoc->ExtendTotalMerge( aRange ); bool bTextBelow = ( aRange.aStart.Row() == 0 ); // MT IA2: Not used: sal_Bool bIsInScen = sal_False; diff --git a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx index 0111d548bc69..09b7f6153865 100644 --- a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx +++ b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx @@ -54,16 +54,13 @@ ScMyAddress ScAccessibleSpreadsheet::CalcScAddressFromRangeList(ScRangeList *pMa { if (pMarkedRanges->size() <= 1) { - ScRange* pRange = pMarkedRanges->front(); - if (pRange) - { - // MT IA2: Not used. - // const int nRowNum = pRange->aEnd.Row() - pRange->aStart.Row() + 1; - const int nColNum = pRange->aEnd.Col() - pRange->aStart.Col() + 1; - const int nCurCol = nSelectedChildIndex % nColNum; - const int nCurRow = (nSelectedChildIndex - nCurCol)/nColNum; - return ScMyAddress(static_cast<SCCOL>(pRange->aStart.Col() + nCurCol), pRange->aStart.Row() + nCurRow, maActiveCell.Tab()); - } + ScRange const & rRange = pMarkedRanges->front(); + // MT IA2: Not used. + // const int nRowNum = rRange.aEnd.Row() - rRange.aStart.Row() + 1; + const int nColNum = rRange.aEnd.Col() - rRange.aStart.Col() + 1; + const int nCurCol = nSelectedChildIndex % nColNum; + const int nCurRow = (nSelectedChildIndex - nCurCol)/nColNum; + return ScMyAddress(static_cast<SCCOL>(rRange.aStart.Col() + nCurCol), rRange.aStart.Row() + nCurRow, maActiveCell.Tab()); } else { @@ -73,24 +70,24 @@ ScMyAddress ScAccessibleSpreadsheet::CalcScAddressFromRangeList(ScRangeList *pMa size_t nSize = pMarkedRanges->size(); for (size_t i = 0; i < nSize; ++i) { - ScRange* pRange = (*pMarkedRanges)[i]; - if (pRange->aStart.Tab() != pRange->aEnd.Tab()) + ScRange const & rRange = (*pMarkedRanges)[i]; + if (rRange.aStart.Tab() != rRange.aEnd.Tab()) { - if ((maActiveCell.Tab() >= pRange->aStart.Tab()) || - maActiveCell.Tab() <= pRange->aEnd.Tab()) + if ((maActiveCell.Tab() >= rRange.aStart.Tab()) || + maActiveCell.Tab() <= rRange.aEnd.Tab()) { - m_vecTempRange.push_back(pRange); - nMinRow = std::min(pRange->aStart.Row(),nMinRow); - nMaxRow = std::max(pRange->aEnd.Row(),nMaxRow); + m_vecTempRange.push_back(rRange); + nMinRow = std::min(rRange.aStart.Row(),nMinRow); + nMaxRow = std::max(rRange.aEnd.Row(),nMaxRow); } else SAL_WARN("sc", "Range of wrong table"); } - else if(pRange->aStart.Tab() == maActiveCell.Tab()) + else if(rRange.aStart.Tab() == maActiveCell.Tab()) { - m_vecTempRange.push_back(pRange); - nMinRow = std::min(pRange->aStart.Row(),nMinRow); - nMaxRow = std::max(pRange->aEnd.Row(),nMaxRow); + m_vecTempRange.push_back(rRange); + nMinRow = std::min(rRange.aStart.Row(),nMinRow); + nMaxRow = std::max(rRange.aEnd.Row(),nMaxRow); } else SAL_WARN("sc", "Range of wrong table"); @@ -103,10 +100,10 @@ ScMyAddress ScAccessibleSpreadsheet::CalcScAddressFromRangeList(ScRangeList *pMa VEC_RANGE::const_iterator vi = m_vecTempRange.begin(); for (; vi < m_vecTempRange.end(); ++vi) { - ScRange *p = *vi; - if ( row >= p->aStart.Row() && row <= p->aEnd.Row()) + ScRange const & r = *vi; + if ( row >= r.aStart.Row() && row <= r.aEnd.Row()) { - m_vecTempCol.emplace_back(p->aStart.Col(),p->aEnd.Col()); + m_vecTempCol.emplace_back(r.aStart.Col(),r.aEnd.Col()); } } } @@ -129,46 +126,46 @@ ScMyAddress ScAccessibleSpreadsheet::CalcScAddressFromRangeList(ScRangeList *pMa return ScMyAddress(0,0,maActiveCell.Tab()); } -bool ScAccessibleSpreadsheet::CalcScRangeDifferenceMax(const ScRange *pSrc, const ScRange *pDest, int nMax, VEC_MYADDR &vecRet, int &nSize) +bool ScAccessibleSpreadsheet::CalcScRangeDifferenceMax(const ScRange & rSrc, const ScRange & rDest, int nMax, VEC_MYADDR &vecRet, int &nSize) { //Src Must be :Src > Dest - if (pDest->In(*pSrc)) + if (rDest.In(rSrc)) {//Here is Src In Dest,Src <= Dest return false; } - if (!pDest->Intersects(*pSrc)) + if (!rDest.Intersects(rSrc)) { - int nCellCount = sal_uInt32(pDest->aEnd.Col() - pDest->aStart.Col() + 1) - * sal_uInt32(pDest->aEnd.Row() - pDest->aStart.Row() + 1) - * sal_uInt32(pDest->aEnd.Tab() - pDest->aStart.Tab() + 1); + int nCellCount = sal_uInt32(rDest.aEnd.Col() - rDest.aStart.Col() + 1) + * sal_uInt32(rDest.aEnd.Row() - rDest.aStart.Row() + 1) + * sal_uInt32(rDest.aEnd.Tab() - rDest.aStart.Tab() + 1); if (nCellCount + nSize > nMax) { return true; } else if(nCellCount > 0) { - for (sal_Int32 row = pDest->aStart.Row(); row <= pDest->aEnd.Row();++row) + for (sal_Int32 row = rDest.aStart.Row(); row <= rDest.aEnd.Row();++row) { - for (sal_uInt16 col = pDest->aStart.Col(); col <= pDest->aEnd.Col();++col) + for (sal_uInt16 col = rDest.aStart.Col(); col <= rDest.aEnd.Col();++col) { - vecRet.emplace_back(col,row,pDest->aStart.Tab()); + vecRet.emplace_back(col,row,rDest.aStart.Tab()); } } } return false; } - sal_Int32 nMinRow = pSrc->aStart.Row(); - sal_Int32 nMaxRow = pSrc->aEnd.Row(); + sal_Int32 nMinRow = rSrc.aStart.Row(); + sal_Int32 nMaxRow = rSrc.aEnd.Row(); for (; nMinRow <= nMaxRow ; ++nMinRow,--nMaxRow) { - for (sal_uInt16 col = pSrc->aStart.Col(); col <= pSrc->aEnd.Col();++col) + for (sal_uInt16 col = rSrc.aStart.Col(); col <= rSrc.aEnd.Col();++col) { if (nSize > nMax) { return true; } - ScMyAddress cell(col,nMinRow,pSrc->aStart.Tab()); - if(!pDest->In(cell)) + ScMyAddress cell(col,nMinRow,rSrc.aStart.Tab()); + if(!rDest.In(cell)) {//In Src ,Not In Dest vecRet.push_back(cell); ++nSize; @@ -176,14 +173,14 @@ bool ScAccessibleSpreadsheet::CalcScRangeDifferenceMax(const ScRange *pSrc, cons } if (nMinRow != nMaxRow) { - for (sal_uInt16 col = pSrc->aStart.Col(); col <= pSrc->aEnd.Col();++col) + for (sal_uInt16 col = rSrc.aStart.Col(); col <= rSrc.aEnd.Col();++col) { if (nSize > nMax) { return true; } - ScMyAddress cell(col,nMaxRow,pSrc->aStart.Tab()); - if(!pDest->In(cell)) + ScMyAddress cell(col,nMaxRow,rSrc.aStart.Tab()); + if(!rDest.In(cell)) {//In Src ,Not In Dest vecRet.push_back(cell); ++nSize; @@ -213,12 +210,12 @@ bool ScAccessibleSpreadsheet::CalcScRangeListDifferenceMax(ScRangeList *pSrc,ScR size_t nSrcSize = pSrc->size(); for (size_t i = 0; i < nSrcSize; ++i) { - ScRange* pRange = (*pSrc)[i]; - for (sal_Int32 row = pRange->aStart.Row(); row <= pRange->aEnd.Row();++row) + ScRange const & rRange = (*pSrc)[i]; + for (sal_Int32 row = rRange.aStart.Row(); row <= rRange.aEnd.Row();++row) { - for (sal_uInt16 col = pRange->aStart.Col(); col <= pRange->aEnd.Col();++col) + for (sal_uInt16 col = rRange.aStart.Col(); col <= rRange.aEnd.Col();++col) { - vecRet.emplace_back(col,row,pRange->aStart.Tab()); + vecRet.emplace_back(col,row, rRange.aStart.Tab()); } } } @@ -229,12 +226,12 @@ bool ScAccessibleSpreadsheet::CalcScRangeListDifferenceMax(ScRangeList *pSrc,ScR size_t nSizeSrc = pSrc->size(); for (size_t i = 0; i < nSizeSrc; ++i) { - ScRange* pRange = (*pSrc)[i]; + ScRange const & rRange = (*pSrc)[i]; size_t nSizeDest = pDest->size(); for (size_t j = 0; j < nSizeDest; ++j) { - ScRange* pRangeDest = (*pDest)[j]; - if (CalcScRangeDifferenceMax(pRange,pRangeDest,nMax,vecRet,nSize)) + ScRange const & rRangeDest = (*pDest)[j]; + if (CalcScRangeDifferenceMax(rRange,rRangeDest,nMax,vecRet,nSize)) { return true; } diff --git a/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx b/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx index 7cb152023474..f6613f63d2e2 100644 --- a/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx +++ b/sc/source/ui/StatisticsDialogs/AnalysisOfVarianceDialog.cxx @@ -66,7 +66,7 @@ OUString lclCreateMultiParameterFormula( OUString aResult; for (size_t i = 0; i < aRangeList.size(); i++) { - OUString aRangeString(aRangeList[i]->Format(ScRefFlags::RANGE_ABS, pDocument, aAddressDetails)); + OUString aRangeString(aRangeList[i].Format(ScRefFlags::RANGE_ABS, pDocument, aAddressDetails)); OUString aFormulaString = aFormulaTemplate.replaceAll(aWildcard, aRangeString); aResult += aFormulaString; if(i != aRangeList.size() - 1) // Not Last @@ -86,7 +86,7 @@ void lclMakeSubRangesList(ScRangeList& rRangeList, const ScRange& rInputRange, S for( ; pIterator->hasNext(); pIterator->next() ) { ScRange aRange = pIterator->get(); - rRangeList.Append(aRange); + rRangeList.push_back(aRange); } } @@ -170,9 +170,9 @@ void ScAnalysisOfVarianceDialog::RowColumn(ScRangeList& rRangeList, AddressWalke { for (size_t i = 0; i < rRangeList.size(); i++) { - ScRange* pRange = rRangeList[i]; + ScRange const & rRange = rRangeList[i]; aTemplate.setTemplate(sFormula); - aTemplate.applyRange(strWildcardRange, *pRange); + aTemplate.applyRange(strWildcardRange, rRange); aOutput.writeFormula(aTemplate.getTemplate()); if (pResultRange != nullptr) pResultRange->aEnd = aOutput.current(); @@ -249,7 +249,7 @@ void ScAnalysisOfVarianceDialog::AnovaSingleFactor(AddressWalkerWriter& output, } output.nextRow(); - aTemplate.autoReplaceRange("%FIRST_COLUMN%", *aRangeList[0]); + aTemplate.autoReplaceRange("%FIRST_COLUMN%", aRangeList[0]); // Between Groups { @@ -416,8 +416,8 @@ void ScAnalysisOfVarianceDialog::AnovaTwoFactor(AddressWalkerWriter& output, For // Setup auto-replace strings aTemplate.autoReplaceRange(strWildcardRange, mInputRange); - aTemplate.autoReplaceRange("%FIRST_COLUMN%", *aColumnRangeList[0]); - aTemplate.autoReplaceRange("%FIRST_ROW%", *aRowRangeList[0]); + aTemplate.autoReplaceRange("%FIRST_COLUMN%", aColumnRangeList[0]); + aTemplate.autoReplaceRange("%FIRST_ROW%", aRowRangeList[0]); // Rows { diff --git a/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx b/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx index 63422289e905..98d022ca7880 100644 --- a/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx +++ b/sc/source/ui/StatisticsDialogs/MatrixComparisonGenerator.cxx @@ -38,8 +38,8 @@ namespace if (j >= i) { aTemplate.setTemplate(aTemplateString); - aTemplate.applyRange("%VAR1%", *aRangeList[i]); - aTemplate.applyRange("%VAR2%", *aRangeList[j]); + aTemplate.applyRange("%VAR1%", aRangeList[i]); + aTemplate.applyRange("%VAR2%", aRangeList[j]); aOutput.writeFormula(aTemplate.getTemplate()); } aOutput.nextRow(); diff --git a/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx b/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx index 7c4ca722568e..b654beae5c29 100644 --- a/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx +++ b/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx @@ -361,7 +361,7 @@ IMPL_LINK_NOARG(ScRandomNumberGeneratorDialog, InputRangeModified, Edit&, void) { ScRangeList aRangeList; bool bValid = ParseWithNames( aRangeList, mpInputRangeEdit->GetText(), mpDoc); - const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; + const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr; if (pRange) { maInputRange = *pRange; diff --git a/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx b/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx index 106fa504e233..42887148cf8d 100644 --- a/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx +++ b/sc/source/ui/StatisticsDialogs/SamplingDialog.cxx @@ -344,7 +344,7 @@ IMPL_LINK_NOARG(ScSamplingDialog, RefInputModifyHandler, Edit&, void) { ScRangeList aRangeList; bool bValid = ParseWithNames( aRangeList, mpInputRangeEdit->GetText(), mDocument); - const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; + const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr; if (pRange) { mInputRange = *pRange; @@ -360,7 +360,7 @@ IMPL_LINK_NOARG(ScSamplingDialog, RefInputModifyHandler, Edit&, void) { ScRangeList aRangeList; bool bValid = ParseWithNames( aRangeList, mpOutputRangeEdit->GetText(), mDocument); - const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; + const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr; if (pRange) { mOutputAddress = pRange->aStart; diff --git a/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx b/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx index 6b17b50f86cd..50645199cd07 100644 --- a/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx +++ b/sc/source/ui/StatisticsDialogs/StatisticsInputOutputDialog.cxx @@ -33,7 +33,7 @@ ScRangeList ScStatisticsInputOutputDialog::MakeColumnRangeList(SCTAB aTab, ScAdd ScAddress(inCol, aStart.Row(), aTab), ScAddress(inCol, aEnd.Row(), aTab) ); - aRangeList.Append(aColumnRange); + aRangeList.push_back(aColumnRange); } return aRangeList; } @@ -47,7 +47,7 @@ ScRangeList ScStatisticsInputOutputDialog::MakeRowRangeList(SCTAB aTab, ScAddres ScAddress(aStart.Col(), inRow, aTab), ScAddress(aEnd.Col(), inRow, aTab) ); - aRangeList.Append(aRowRange); + aRangeList.push_back(aRowRange); } return aRangeList; } @@ -233,7 +233,7 @@ IMPL_LINK_NOARG( ScStatisticsInputOutputDialog, RefInputModifyHandler, Edit&, vo { ScRangeList aRangeList; bool bValid = ParseWithNames( aRangeList, mpInputRangeEdit->GetText(), mDocument); - const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; + const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr; if (pRange) { mInputRange = *pRange; @@ -249,7 +249,7 @@ IMPL_LINK_NOARG( ScStatisticsInputOutputDialog, RefInputModifyHandler, Edit&, vo { ScRangeList aRangeList; bool bValid = ParseWithNames( aRangeList, mpOutputRangeEdit->GetText(), mDocument); - const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; + const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr; if (pRange) { mOutputAddress = pRange->aStart; diff --git a/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx b/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx index 163044c68d90..0fa8c96f0333 100644 --- a/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx +++ b/sc/source/ui/StatisticsDialogs/StatisticsTwoVariableDialog.cxx @@ -256,7 +256,7 @@ IMPL_LINK_NOARG( ScStatisticsTwoVariableDialog, RefInputModifyHandler, Edit&, vo { ScRangeList aRangeList; bool bValid = ParseWithNames( aRangeList, mpVariable1RangeEdit->GetText(), mDocument); - const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; + const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr; if (pRange) { mVariable1Range = *pRange; @@ -272,7 +272,7 @@ IMPL_LINK_NOARG( ScStatisticsTwoVariableDialog, RefInputModifyHandler, Edit&, vo { ScRangeList aRangeList; bool bValid = ParseWithNames( aRangeList, mpVariable2RangeEdit->GetText(), mDocument); - const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; + const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr; if (pRange) { mVariable2Range = *pRange; @@ -288,7 +288,7 @@ IMPL_LINK_NOARG( ScStatisticsTwoVariableDialog, RefInputModifyHandler, Edit&, vo { ScRangeList aRangeList; bool bValid = ParseWithNames( aRangeList, mpOutputRangeEdit->GetText(), mDocument); - const ScRange* pRange = (bValid && aRangeList.size() == 1) ? aRangeList[0] : nullptr; + const ScRange* pRange = (bValid && aRangeList.size() == 1) ? &aRangeList[0] : nullptr; if (pRange) { mOutputAddress = pRange->aStart; diff --git a/sc/source/ui/condformat/condformatdlg.cxx b/sc/source/ui/condformat/condformatdlg.cxx index b162591cc129..fa5676961b29 100644 --- a/sc/source/ui/condformat/condformatdlg.cxx +++ b/sc/source/ui/condformat/condformatdlg.cxx @@ -542,8 +542,7 @@ ScCondFormatDlg::ScCondFormatDlg(SfxBindings* pB, SfxChildWindow* pCW, if(aRange.empty()) { ScAddress aPos(mpViewData->GetCurX(), mpViewData->GetCurY(), mpViewData->GetTabNo()); - ScRange* pRange = new ScRange(aPos); - aRange.push_back(pRange); + aRange.push_back(ScRange(aPos)); } mnKey = 0; } diff --git a/sc/source/ui/dialogs/searchresults.cxx b/sc/source/ui/dialogs/searchresults.cxx index f72bb7423388..374ce58407d4 100644 --- a/sc/source/ui/dialogs/searchresults.cxx +++ b/sc/source/ui/dialogs/searchresults.cxx @@ -107,17 +107,17 @@ void SearchResultsDlg::FillResults( ScDocument* pDoc, const ScRangeList &rMatche /* TODO: a CellNotes iterator would come handy and might speed * things up a little, though we only loop through the * search/replace result positions here. */ - ScRange aRange( *rMatchedRanges[i] ); + ScRange const & rRange( rMatchedRanges[i] ); // Bear in mind that mostly the range is one address position // or a column or a row joined. - ScAddress aPos( aRange.aStart ); - for ( ; aPos.Tab() <= aRange.aEnd.Tab(); aPos.IncTab()) + ScAddress aPos( rRange.aStart ); + for ( ; aPos.Tab() <= rRange.aEnd.Tab(); aPos.IncTab()) { if (aPos.Tab() >= nTabCount) break; // can this even happen? we just searched on existing sheets ... - for (aPos.SetCol( aRange.aStart.Col()); aPos.Col() <= aRange.aEnd.Col(); aPos.IncCol()) + for (aPos.SetCol( rRange.aStart.Col()); aPos.Col() <= rRange.aEnd.Col(); aPos.IncCol()) { - for (aPos.SetRow( aRange.aStart.Row()); aPos.Row() <= aRange.aEnd.Row(); aPos.IncRow()) + for (aPos.SetRow( rRange.aStart.Row()); aPos.Row() <= rRange.aEnd.Row(); aPos.IncRow()) { const ScPostIt* pNote = pDoc->GetNote( aPos); if (pNote) @@ -133,7 +133,7 @@ void SearchResultsDlg::FillResults( ScDocument* pDoc, const ScRangeList &rMatche { for (size_t i = 0, n = nMatchMax; i < n; ++i) { - ScCellIterator aIter(pDoc, *rMatchedRanges[i]); + ScCellIterator aIter(pDoc, rMatchedRanges[i]); for (bool bHas = aIter.first(); bHas; bHas = aIter.next()) { ScAddress aPos = aIter.GetPos(); diff --git a/sc/source/ui/docshell/arealink.cxx b/sc/source/ui/docshell/arealink.cxx index e9ce36f11ac9..3e719dfb68f9 100644 --- a/sc/source/ui/docshell/arealink.cxx +++ b/sc/source/ui/docshell/arealink.cxx @@ -281,7 +281,7 @@ bool ScAreaLink::Refresh( const OUString& rNewFile, const OUString& rNewFilter, SCROW nEndRow = 0; if (rSrcDoc.GetCellArea( 0, nEndCol, nEndRow)) { - aSourceRanges.Append( ScRange( 0,0,0, nEndCol, nEndRow, 0)); + aSourceRanges.push_back( ScRange( 0,0,0, nEndCol, nEndRow, 0)); nWidth = nEndCol + 1; nHeight = nEndRow + 2; } @@ -295,7 +295,7 @@ bool ScAreaLink::Refresh( const OUString& rNewFile, const OUString& rNewFilter, ScRange aTokenRange; if( FindExtRange( aTokenRange, &rSrcDoc, aToken ) ) { - aSourceRanges.Append( aTokenRange); + aSourceRanges.push_back( aTokenRange); // columns: find maximum nWidth = std::max( nWidth, static_cast<SCCOL>(aTokenRange.aEnd.Col() - aTokenRange.aStart.Col() + 1) ); // rows: add row range + 1 empty row @@ -373,13 +373,13 @@ bool ScAreaLink::Refresh( const OUString& rNewFile, const OUString& rNewFilter, ScRange aNewTokenRange( aNewRange.aStart ); for (size_t nRange = 0; nRange < aSourceRanges.size(); ++nRange) { - ScRange aTokenRange( *aSourceRanges[nRange]); - SCTAB nSrcTab = aTokenRange.aStart.Tab(); + ScRange const & rTokenRange( aSourceRanges[nRange]); + SCTAB nSrcTab = rTokenRange.aStart.Tab(); ScMarkData aSourceMark; aSourceMark.SelectOneTable( nSrcTab ); // selecting for CopyToClip - aSourceMark.SetMarkArea( aTokenRange ); + aSourceMark.SetMarkArea( rTokenRange ); - ScClipParam aClipParam(aTokenRange, false); + ScClipParam aClipParam(rTokenRange, false); rSrcDoc.CopyToClip(aClipParam, &aClipDoc, &aSourceMark, false, false); if ( aClipDoc.HasAttrib( 0,0,nSrcTab, MAXCOL,MAXROW,nSrcTab, @@ -393,8 +393,8 @@ bool ScAreaLink::Refresh( const OUString& rNewFile, const OUString& rNewFilter, aClipDoc.ApplyPatternAreaTab( 0,0, MAXCOL,MAXROW, nSrcTab, aPattern ); } - aNewTokenRange.aEnd.SetCol( aNewTokenRange.aStart.Col() + (aTokenRange.aEnd.Col() - aTokenRange.aStart.Col()) ); - aNewTokenRange.aEnd.SetRow( aNewTokenRange.aStart.Row() + (aTokenRange.aEnd.Row() - aTokenRange.aStart.Row()) ); + aNewTokenRange.aEnd.SetCol( aNewTokenRange.aStart.Col() + (rTokenRange.aEnd.Col() - rTokenRange.aStart.Col()) ); + aNewTokenRange.aEnd.SetRow( aNewTokenRange.aStart.Row() + (rTokenRange.aEnd.Row() - rTokenRange.aStart.Row()) ); ScMarkData aDestMark; aDestMark.SelectOneTable( nDestTab ); aDestMark.SetMarkArea( aNewTokenRange ); diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx index c81d66554003..7e21ade37edd 100644 --- a/sc/source/ui/docshell/dbdocfun.cxx +++ b/sc/source/ui/docshell/dbdocfun.cxx @@ -1161,8 +1161,8 @@ bool isEditable(ScDocShell& rDocShell, const ScRangeList& rRanges, bool bApi) for (size_t i = 0, n = rRanges.size(); i < n; ++i) { - const ScRange* p = rRanges[i]; - ScEditableTester aTester(&rDoc, *p); + const ScRange & r = rRanges[i]; + ScEditableTester aTester(&rDoc, r); if (!aTester.IsEditable()) { if (!bApi) @@ -1254,8 +1254,8 @@ bool ScDBDocFunc::DataPilotUpdate( ScDPObject* pOldObj, const ScDPObject* pNewOb WaitObject aWait( ScDocShell::GetActiveDialogParent() ); ScRangeList aRanges; - aRanges.Append(pOldObj->GetOutRange()); - aRanges.Append(pNewObj->GetOutRange().aStart); // at least one cell in the output position must be editable. + aRanges.push_back(pOldObj->GetOutRange()); + aRanges.push_back(pNewObj->GetOutRange().aStart); // at least one cell in the output position must be editable. if (!isEditable(rDocShell, aRanges, bApi)) return false; diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx index e8705d760aa0..6b0ee190fdd5 100644 --- a/sc/source/ui/docshell/docfunc.cxx +++ b/sc/source/ui/docshell/docfunc.cxx @@ -528,21 +528,20 @@ static void lcl_collectAllPredOrSuccRanges( ScRangeList aSrcRanges(rSrcRanges); if (aSrcRanges.empty()) return; - ScRange* p = aSrcRanges.front(); - ScDetectiveFunc aDetFunc(&rDoc, p->aStart.Tab()); - ScRangeList aDestRanges; + ScRange const & rFrontRange = aSrcRanges.front(); + ScDetectiveFunc aDetFunc(&rDoc, rFrontRange.aStart.Tab()); for (size_t i = 0, n = aSrcRanges.size(); i < n; ++i) { - p = aSrcRanges[i]; + ScRange const & r = aSrcRanges[i]; if (bPred) { aDetFunc.GetAllPreds( - p->aStart.Col(), p->aStart.Row(), p->aEnd.Col(), p->aEnd.Row(), aRefTokens); + r.aStart.Col(), r.aStart.Row(), r.aEnd.Col(), r.aEnd.Row(), aRefTokens); } else { aDetFunc.GetAllSuccs( - p->aStart.Col(), p->aStart.Row(), p->aEnd.Col(), p->aEnd.Row(), aRefTokens); + r.aStart.Col(), r.aStart.Row(), r.aEnd.Col(), r.aEnd.Row(), aRefTokens); } } rRefTokens.swap(aRefTokens); diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx index 582f39aad829..8adcbfb0006c 100644 --- a/sc/source/ui/docshell/docsh3.cxx +++ b/sc/source/ui/docshell/docsh3.cxx @@ -104,7 +104,7 @@ void ScDocShell::PostPaint( const ScRangeList& rRanges, PaintPartFlags nPart, sa ScRangeList aPaintRanges; for (size_t i = 0, n = rRanges.size(); i < n; ++i) { - const ScRange& rRange = *rRanges[i]; + const ScRange& rRange = rRanges[i]; SCCOL nCol1 = rRange.aStart.Col(), nCol2 = rRange.aEnd.Col(); SCROW nRow1 = rRange.aStart.Row(), nRow2 = rRange.aEnd.Row(); SCTAB nTab1 = rRange.aStart.Tab(), nTab2 = rRange.aEnd.Tab(); @@ -159,7 +159,7 @@ void ScDocShell::PostPaint( const ScRangeList& rRanges, PaintPartFlags nPart, sa nCol2 = MAXCOL; } } - aPaintRanges.Append(ScRange(nCol1, nRow1, nTab1, nCol2, nRow2, nTab2)); + aPaintRanges.push_back(ScRange(nCol1, nRow1, nTab1, nCol2, nRow2, nTab2)); } Broadcast(ScPaintHint(aPaintRanges.Combine(), nPart)); @@ -255,9 +255,9 @@ void ScDocShell::UnlockPaint_Impl(bool bDoc) for ( size_t i = 0, nCount = xRangeList->size(); i < nCount; i++ ) { //! nExtFlags ??? - ScRange aRange = *(*xRangeList)[i]; - PostPaint( aRange.aStart.Col(), aRange.aStart.Row(), aRange.aStart.Tab(), - aRange.aEnd.Col(), aRange.aEnd.Row(), aRange.aEnd.Tab(), + ScRange const & rRange = (*xRangeList)[i]; + PostPaint( rRange.aStart.Col(), rRange.aStart.Row(), rRange.aStart.Tab(), + rRange.aEnd.Col(), rRange.aEnd.Row(), rRange.aEnd.Tab(), nParts ); } } diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx index d0d95a28277f..81f321dd5c51 100644 --- a/sc/source/ui/docshell/docsh4.cxx +++ b/sc/source/ui/docshell/docsh4.cxx @@ -331,7 +331,7 @@ void ScDocShell::Execute( SfxRequest& rReq ) if ( !aRangeListRef->empty() ) { bMultiRange = true; - aSingleRange = *aRangeListRef->front(); // for header + aSingleRange = aRangeListRef->front(); // for header bValid = true; } else diff --git a/sc/source/ui/docshell/docsh5.cxx b/sc/source/ui/docshell/docsh5.cxx index 8b1730af3a0d..acd05f0ec21b 100644 --- a/sc/source/ui/docshell/docsh5.cxx +++ b/sc/source/ui/docshell/docsh5.cxx @@ -865,7 +865,7 @@ sal_uLong ScDocShell::TransferTab( ScDocShell& rSrcDocShell, SCTAB nSrcPos, // set the transferred area to the copyparam to make adjusting formulas possible ScClipParam aParam; ScRange aRange(0, 0, nSrcPos, MAXCOL, MAXROW, nSrcPos); - aParam.maRanges.Append(aRange); + aParam.maRanges.push_back(aRange); rSrcDoc.SetClipParam(aParam); sal_uLong nErrVal = aDocument.TransferTab( &rSrcDoc, nSrcPos, nDestPos, diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx index 9676d89b318d..4ca3df975a36 100644 --- a/sc/source/ui/docshell/externalrefmgr.cxx +++ b/sc/source/ui/docshell/externalrefmgr.cxx @@ -435,10 +435,7 @@ void ScExternalRefCache::Table::setCachedCell(SCCOL nCol, SCROW nRow) void ScExternalRefCache::Table::setCachedCellRange(SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2) { ScRange aRange(nCol1, nRow1, 0, nCol2, nRow2, 0); - if ( maCachedRanges.empty() ) - maCachedRanges.Append(aRange); - else - maCachedRanges.Join(aRange); + maCachedRanges.Join(aRange); } void ScExternalRefCache::Table::setWholeTableCached() diff --git a/sc/source/ui/docshell/tablink.cxx b/sc/source/ui/docshell/tablink.cxx index f8dd7e3390ef..224e88a7f3a3 100644 --- a/sc/source/ui/docshell/tablink.cxx +++ b/sc/source/ui/docshell/tablink.cxx @@ -322,11 +322,11 @@ bool ScTableLink::Refresh(const OUString& rNewFile, const OUString& rNewFilter, for (size_t nPos=0; nPos < nRanges; nPos++) { - const ScRange* pRange = aErrorCells[ nPos ]; - SCCOL nStartCol = pRange->aStart.Col(); - SCROW nStartRow = pRange->aStart.Row(); - SCCOL nEndCol = pRange->aEnd.Col(); - SCROW nEndRow = pRange->aEnd.Row(); + const ScRange & rRange = aErrorCells[ nPos ]; + SCCOL nStartCol = rRange.aStart.Col(); + SCROW nStartRow = rRange.aStart.Row(); + SCCOL nEndCol = rRange.aEnd.Col(); + SCROW nEndRow = rRange.aEnd.Row(); for (SCROW nRow=nStartRow; nRow<=nEndRow; nRow++) for (SCCOL nCol=nStartCol; nCol<=nEndCol; nCol++) { diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx index a041c7b8f98e..b494a11952d7 100644 --- a/sc/source/ui/drawfunc/fuins2.cxx +++ b/sc/source/ui/drawfunc/fuins2.cxx @@ -462,10 +462,10 @@ FuInsertChart::FuInsertChart(ScTabViewShell* pViewSh, vcl::Window* pWin, ScDrawV // get "total" range for positioning if ( !aRanges.empty() ) { - aPositionRange = *aRanges[ 0 ]; + aPositionRange = aRanges[ 0 ]; for ( size_t i = 1, nCount = aRanges.size(); i < nCount; ++i ) { - aPositionRange.ExtendTo( *aRanges[ i ] ); + aPositionRange.ExtendTo( aRanges[ i ] ); } } diff --git a/sc/source/ui/inc/AccessibleSpreadsheet.hxx b/sc/source/ui/inc/AccessibleSpreadsheet.hxx index baf47f016aee..ade94b07a24b 100644 --- a/sc/source/ui/inc/AccessibleSpreadsheet.hxx +++ b/sc/source/ui/inc/AccessibleSpreadsheet.hxx @@ -269,7 +269,7 @@ public: ScRange m_aLastWithInMarkRange; OUString m_strCurCellValue; ScRangeList m_LastMarkedRanges; - typedef std::vector<ScRange*> VEC_RANGE; + typedef std::vector<ScRange> VEC_RANGE; VEC_RANGE m_vecTempRange; typedef std::pair<sal_uInt16,sal_uInt16> PAIR_COL; typedef std::vector<PAIR_COL> VEC_COL; @@ -280,7 +280,7 @@ public: bool IsScAddrFormulaSel (const ScAddress &addr) const; bool IsFormulaMode(); ScMyAddress CalcScAddressFromRangeList(ScRangeList *pMarkedRanges,sal_Int32 nSelectedChildIndex); - static bool CalcScRangeDifferenceMax(const ScRange *pSrc, const ScRange *pDest,int nMax,VEC_MYADDR &vecRet,int &nSize); + static bool CalcScRangeDifferenceMax(const ScRange & rSrc, const ScRange & rDest,int nMax,VEC_MYADDR &vecRet,int &nSize); static bool CalcScRangeListDifferenceMax(ScRangeList *pSrc,ScRangeList *pDest,int nMax,VEC_MYADDR &vecRet); }; diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx index 50bcf63dd37f..197ca4684c4e 100644 --- a/sc/source/ui/inc/docsh.hxx +++ b/sc/source/ui/inc/docsh.hxx @@ -475,8 +475,7 @@ namespace HelperNotifyChanges { if (ScModelObj* pModelObj = getMustPropagateChangesModel(rDocShell)) { - ScRangeList aChangeRanges; - aChangeRanges.Append(rRange); + ScRangeList aChangeRanges(rRange); Notify(*pModelObj, aChangeRanges, rType); } } diff --git a/sc/source/ui/miscdlgs/acredlin.cxx b/sc/source/ui/miscdlgs/acredlin.cxx index 6a6f6f3e2684..210392eaf8be 100644 --- a/sc/source/ui/miscdlgs/acredlin.cxx +++ b/sc/source/ui/miscdlgs/acredlin.cxx @@ -244,8 +244,8 @@ void ScAcceptChgDlg::Init() if( !aChangeViewSet.GetTheRangeList().empty() ) { - const ScRange* pRangeEntry = aChangeViewSet.GetTheRangeList().front(); - OUString aRefStr(pRangeEntry->Format(ScRefFlags::RANGE_ABS_3D, pDoc)); + const ScRange & rRangeEntry = aChangeViewSet.GetTheRangeList().front(); + OUString aRefStr(rRangeEntry.Format(ScRefFlags::RANGE_ABS_3D, pDoc)); pTPFilter->SetRange(aRefStr); } @@ -338,8 +338,8 @@ bool ScAcceptChgDlg::IsValidAction(const ScChangeAction* pScChangeAction) { for ( size_t i = 0, nRanges = aRangeList.size(); i < nRanges; ++i ) { - ScRange* pRangeEntry = aRangeList[ i ]; - if (pRangeEntry->Intersects(aRef)) { + ScRange const & rRangeEntry = aRangeList[ i ]; + if (rRangeEntry.Intersects(aRef)) { bFlag = true; break; } @@ -457,8 +457,8 @@ SvTreeListEntry* ScAcceptChgDlg::AppendChangeAction( { for ( size_t i = 0, nRanges = aRangeList.size(); i < nRanges; ++i ) { - ScRange* pRangeEntry = aRangeList[ i ]; - if( pRangeEntry->Intersects(aRef) ) + ScRange const & rRangeEntry = aRangeList[ i ]; + if( rRangeEntry.Intersects(aRef) ) { bHasFilterEntry=true; bFlag=true; @@ -527,8 +527,8 @@ SvTreeListEntry* ScAcceptChgDlg::AppendFilteredAction( { for ( size_t i = 0, nRanges = aRangeList.size(); i < nRanges; ++i ) { - ScRange* pRangeEntry=aRangeList[ i ]; - if( pRangeEntry->Intersects(aRef) ) + ScRange const & rRangeEntry=aRangeList[ i ]; + if( rRangeEntry.Intersects(aRef) ) { if( pScChangeAction->GetState()==eState ) bFlag = true; @@ -647,8 +647,8 @@ SvTreeListEntry* ScAcceptChgDlg::InsertChangeActionContent(const ScChangeActionC { for ( size_t i = 0, nRanges = aRangeList.size(); i < nRanges; ++i ) { - ScRange* pRangeEntry = aRangeList[ i ]; - if( pRangeEntry->Intersects(aRef) ) + ScRange const & rRangeEntry = aRangeList[ i ]; + if( rRangeEntry.Intersects(aRef) ) { bFlag=true; break; diff --git a/sc/source/ui/miscdlgs/anyrefdg.cxx b/sc/source/ui/miscdlgs/anyrefdg.cxx index 8a9c71ee6eb6..e4e51f964091 100644 --- a/sc/source/ui/miscdlgs/anyrefdg.cxx +++ b/sc/source/ui/miscdlgs/anyrefdg.cxx @@ -144,9 +144,9 @@ void ScFormulaReferenceHelper::ShowSimpleReference(const OUString& rStr) { for ( size_t i = 0, nRanges = aRangeList.size(); i < nRanges; ++i ) { - ScRange* pRangeEntry = aRangeList[ i ]; + ScRange const & rRangeEntry = aRangeList[ i ]; Color aColName = ScRangeFindList::GetColorName( i ); - pTabViewShell->AddHighlightRange( *pRangeEntry, aColName ); + pTabViewShell->AddHighlightRange( rRangeEntry, aColName ); } } } @@ -173,10 +173,10 @@ bool ScFormulaReferenceHelper::ParseWithNames( ScRangeList& rRanges, const OUStr aRange.aStart.SetTab( nRefTab ); if ( (nFlags & ScRefFlags::TAB2_3D) == ScRefFlags::ZERO ) aRange.aEnd.SetTab( aRange.aStart.Tab() ); - rRanges.Append( aRange ); + rRanges.push_back( aRange ); } else if ( ScRangeUtil::MakeRangeFromName( aRangeStr, pDoc, nRefTab, aRange, RUTL_NAMES, aDetails ) ) - rRanges.Append( aRange ); + rRanges.push_back( aRange ); else bError = true; } @@ -304,13 +304,13 @@ void ScFormulaReferenceHelper::ReleaseFocus( formula::RefEdit* pEdit ) { if ( !aRangeList.empty() ) { - const ScRange* pRange = aRangeList.front(); - pViewShell->SetTabNo( pRange->aStart.Tab() ); - pViewShell->MoveCursorAbs( pRange->aStart.Col(), - pRange->aStart.Row(), SC_FOLLOW_JUMP, false, false ); - pViewShell->MoveCursorAbs( pRange->aEnd.Col(), - pRange->aEnd.Row(), SC_FOLLOW_JUMP, true, false ); - m_pDlg->SetReference( *pRange, pDoc ); + const ScRange & rRange = aRangeList.front(); + pViewShell->SetTabNo( rRange.aStart.Tab() ); + pViewShell->MoveCursorAbs( rRange.aStart.Col(), + rRange.aStart.Row(), SC_FOLLOW_JUMP, false, false ); + pViewShell->MoveCursorAbs( rRange.aEnd.Col(), + rRange.aEnd.Row(), SC_FOLLOW_JUMP, true, false ); + m_pDlg->SetReference( rRange, pDoc ); } } } diff --git a/sc/source/ui/miscdlgs/highred.cxx b/sc/source/ui/miscdlgs/highred.cxx index 9601a7c68195..627fb68af76b 100644 --- a/sc/source/ui/miscdlgs/highred.cxx +++ b/sc/source/ui/miscdlgs/highred.cxx @@ -123,8 +123,8 @@ void ScHighlightChgDlg::Init() if ( !aChangeViewSet.GetTheRangeList().empty() ) { - const ScRange* pRangeEntry = aChangeViewSet.GetTheRangeList().front(); - OUString aRefStr(pRangeEntry->Format(ScRefFlags::RANGE_ABS_3D, pDoc)); + const ScRange & rRangeEntry = aChangeViewSet.GetTheRangeList().front(); + OUString aRefStr(rRangeEntry.Format(ScRefFlags::RANGE_ABS_3D, pDoc)); m_pFilterCtr->SetRange(aRefStr); } m_pFilterCtr->Enable(); diff --git a/sc/source/ui/miscdlgs/optsolver.cxx b/sc/source/ui/miscdlgs/optsolver.cxx index 73141f48b822..6ffb40cd8453 100644 --- a/sc/source/ui/miscdlgs/optsolver.cxx +++ b/sc/source/ui/miscdlgs/optsolver.cxx @@ -868,7 +868,7 @@ bool ScOptSolverDlg::CallSolver() // return true -> close dialog after cal for ( size_t nRangePos=0, nRange = aVarRanges.size(); nRangePos < nRange; ++nRangePos ) { - ScRange aRange(*aVarRanges[ nRangePos ] ); + ScRange aRange( aVarRanges[ nRangePos ] ); aRange.PutInOrder(); SCTAB nTab = aRange.aStart.Tab(); diff --git a/sc/source/ui/undo/undobase.cxx b/sc/source/ui/undo/undobase.cxx index 6198c87c7c7a..d88d29d71b53 100644 --- a/sc/source/ui/undo/undobase.cxx +++ b/sc/source/ui/undo/undobase.cxx @@ -388,7 +388,7 @@ void ScMultiBlockUndo::ShowBlock() return; // Move to the sheet of the first range. - ScRange aRange = *maBlockRanges.front(); + ScRange aRange = maBlockRanges.front(); ShowTable(aRange); pViewShell->MoveCursorAbs( aRange.aStart.Col(), aRange.aStart.Row(), SC_FOLLOW_JUMP, false, false); @@ -399,7 +399,7 @@ void ScMultiBlockUndo::ShowBlock() for (size_t i = 1, n = maBlockRanges.size(); i < n; ++i) { - aRange = *maBlockRanges[i]; + aRange = maBlockRanges[i]; aRange.aStart.SetTab(nTab); aRange.aEnd.SetTab(nTab); pViewShell->MarkRange(aRange, false, true); diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx index a59b5d5c4177..6d96cdaeccaf 100644 --- a/sc/source/ui/undo/undoblk.cxx +++ b/sc/source/ui/undo/undoblk.cxx @@ -919,7 +919,7 @@ void ScUndoPaste::SetChangeTrack() { for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i) { - pChangeTrack->AppendContentRange(*maBlockRanges[i], pUndoDoc, + pChangeTrack->AppendContentRange(maBlockRanges[i], pUndoDoc, nStartChangeAction, nEndChangeAction, SC_CACM_PASTE ); } } @@ -963,7 +963,7 @@ void ScUndoPaste::DoChange(bool bUndo) bool bRowInfo = true; for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i) { - const ScRange& r = *maBlockRanges[i]; + const ScRange& r = maBlockRanges[i]; bColInfo &= (r.aStart.Row() == 0 && r.aEnd.Row() == MAXROW); bRowInfo &= (r.aStart.Col() == 0 && r.aEnd.Col() == MAXCOL); if (!bColInfo && !bRowInfo) @@ -977,7 +977,7 @@ void ScUndoPaste::DoChange(bool bUndo) // all sheets - CopyToDocument skips those that don't exist in pRedoDoc for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i) { - ScRange aCopyRange = *maBlockRanges[i]; + ScRange aCopyRange = maBlockRanges[i]; aCopyRange.aStart.SetTab(0); aCopyRange.aEnd.SetTab(nTabCount-1); rDoc.CopyToDocument(aCopyRange, nUndoFlags, false, *pRedoDoc); @@ -992,7 +992,7 @@ void ScUndoPaste::DoChange(bool bUndo) aMarkData.MarkToMulti(); rDoc.DeleteSelection(nUndoFlags, aMarkData, false); // no broadcasting here for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i) - rDoc.BroadcastCells(*maBlockRanges[i], SfxHintId::ScDataChanged); + rDoc.BroadcastCells(maBlockRanges[i], SfxHintId::ScDataChanged); aMarkData.MarkToSimple(); @@ -1002,7 +1002,7 @@ void ScUndoPaste::DoChange(bool bUndo) { for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i) { - ScRange aRange = *maBlockRanges[i]; + ScRange aRange = maBlockRanges[i]; aRange.aStart.SetTab(nFirstSelected); aRange.aEnd.SetTab(nFirstSelected); pRedoDoc->UndoToDocument(aRange, nUndoFlags, false, rDoc); @@ -1023,7 +1023,7 @@ void ScUndoPaste::DoChange(bool bUndo) { pWorkRefData->DoUndo( &rDoc, true ); // true = bSetChartRangeLists for SetChartListenerCollection if (!maBlockRanges.empty() && - rDoc.RefreshAutoFilter(0, 0, MAXCOL, MAXROW, maBlockRanges[0]->aStart.Tab())) + rDoc.RefreshAutoFilter(0, 0, MAXCOL, MAXROW, maBlockRanges[0].aStart.Tab())) bPaintAll = true; } @@ -1034,7 +1034,7 @@ void ScUndoPaste::DoChange(bool bUndo) { for (size_t i = 0, n = maBlockRanges.size(); i < n; ++i) { - ScRange aRange = *maBlockRanges[i]; + ScRange aRange = maBlockRanges[i]; ScMarkData::iterator itr = aMarkData.begin(), itrEnd = aMarkData.end(); for (; itr != itrEnd && *itr < nTabCount; ++itr) { @@ -1058,7 +1058,7 @@ void ScUndoPaste::DoChange(bool bUndo) PaintPartFlags nPaint = PaintPartFlags::Grid; for (size_t i = 0, n = aDrawRanges.size(); i < n; ++i) { - ScRange& rDrawRange = *aDrawRanges[i]; + ScRange& rDrawRange = aDrawRanges[i]; rDoc.ExtendMerge(rDrawRange, true); // only needed for single sheet (text/rtf etc.) if (bPaintAll) { @@ -1072,12 +1072,12 @@ void ScUndoPaste::DoChange(bool bUndo) } else { - if (maBlockRanges[i]->aStart.Row() == 0 && maBlockRanges[i]->aEnd.Row() == MAXROW) // whole column + if (maBlockRanges[i].aStart.Row() == 0 && maBlockRanges[i].aEnd.Row() == MAXROW) // whole column { nPaint |= PaintPartFlags::Top; rDrawRange.aEnd.SetCol(MAXCOL); } - if (maBlockRanges[i]->aStart.Col() == 0 && maBlockRanges[i]->aEnd.Col() == MAXCOL) // whole row + if (maBlockRanges[i].aStart.Col() == 0 && maBlockRanges[i].aEnd.Col() == MAXCOL) // whole row { nPaint |= PaintPartFlags::Left; rDrawRange.aEnd.SetRow(MAXROW); @@ -1109,7 +1109,7 @@ void ScUndoPaste::Undo() BeginUndo(); DoChange(true); if (!maBlockRanges.empty()) - ShowTable(*maBlockRanges.front()); + ShowTable(maBlockRanges.front()); EndUndo(); SfxGetpApp()->Broadcast( SfxHint( SfxHintId::ScAreaLinksChanged ) ); } @@ -1380,8 +1380,8 @@ void ScUndoDragDrop::Undo() for (size_t i = 0; i < maPaintRanges.size(); ++i) { - const ScRange* p = maPaintRanges[i]; - PaintArea(*p, mnPaintExtFlags); + const ScRange& r = maPaintRanges[i]; + PaintArea(r, mnPaintExtFlags); } EndUndo(); @@ -2339,16 +2339,16 @@ static ScRange lcl_TotalRange( const ScRangeList& rRanges ) ScRange aTotal; if ( !rRanges.empty() ) { - aTotal = *rRanges[ 0 ]; + aTotal = rRanges[ 0 ]; for ( size_t i = 1, nCount = rRanges.size(); i < nCount; ++i ) { - ScRange aRange = *rRanges[ i ]; - if (aRange.aStart.Col() < aTotal.aStart.Col()) aTotal.aStart.SetCol(aRange.aStart.Col()); - if (aRange.aStart.Row() < aTotal.aStart.Row()) aTotal.aStart.SetRow(aRange.aStart.Row()); - if (aRange.aStart.Tab() < aTotal.aStart.Tab()) aTotal.aStart.SetTab(aRange.aStart.Tab()); - if (aRange.aEnd.Col() > aTotal.aEnd.Col() ) aTotal.aEnd.SetCol( aRange.aEnd.Col() ); - if (aRange.aEnd.Row() > aTotal.aEnd.Row() ) aTotal.aEnd.SetRow( aRange.aEnd.Row() ); - if (aRange.aEnd.Tab() > aTotal.aEnd.Tab() ) aTotal.aEnd.SetTab(aRange.aEnd.Tab() ); + ScRange const & rRange = rRanges[ i ]; + if (rRange.aStart.Col() < aTotal.aStart.Col()) aTotal.aStart.SetCol(rRange.aStart.Col()); + if (rRange.aStart.Row() < aTotal.aStart.Row()) aTotal.aStart.SetRow(rRange.aStart.Row()); + if (rRange.aStart.Tab() < aTotal.aStart.Tab()) aTotal.aStart.SetTab(rRange.aStart.Tab()); + if (rRange.aEnd.Col() > aTotal.aEnd.Col() ) aTotal.aEnd.SetCol( rRange.aEnd.Col() ); + if (rRange.aEnd.Row() > aTotal.aEnd.Row() ) aTotal.aEnd.SetRow( rRange.aEnd.Row() ); + if (rRange.aEnd.Tab() > aTotal.aEnd.Tab() ) aTotal.aEnd.SetTab(rRange.aEnd.Tab() ); } } return aTotal; @@ -2391,17 +2391,17 @@ void ScUndoBorder::Redo() size_t nCount = xRanges->size(); for (size_t i = 0; i < nCount; ++i ) { - ScRange aRange = *(*xRanges)[i]; - SCTAB nTab = aRange.aStart.Tab(); + ScRange const & rRange = (*xRanges)[i]; + SCTAB nTab = rRange.aStart.Tab(); ScMarkData aMark; - aMark.SetMarkArea( aRange ); + aMark.SetMarkArea( rRange ); aMark.SelectTable( nTab, true ); rDoc.ApplySelectionFrame(aMark, *xOuter, xInner.get()); } for (size_t i = 0; i < nCount; ++i) - pDocShell->PostPaint( *(*xRanges)[i], PaintPartFlags::Grid, SC_PF_LINES | SC_PF_TESTMERGE ); + pDocShell->PostPaint( (*xRanges)[i], PaintPartFlags::Grid, SC_PF_LINES | SC_PF_TESTMERGE ); EndRedo(); } diff --git a/sc/source/ui/undo/undocell.cxx b/sc/source/ui/undo/undocell.cxx index 7734e2ae7492..522914ec9cdc 100644 --- a/sc/source/ui/undo/undocell.cxx +++ b/sc/source/ui/undo/undocell.cxx @@ -60,7 +60,7 @@ namespace HelperNotifyChanges for (const auto & rOldValue : rOldValues) { - aChangeRanges.Append( ScRange(rPos.Col(), rPos.Row(), rOldValue.mnTab)); + aChangeRanges.push_back( ScRange(rPos.Col(), rPos.Row(), rOldValue.mnTab)); } Notify(*pModelObj, aChangeRanges, "cell-change"); diff --git a/sc/source/ui/undo/undodat.cxx b/sc/source/ui/undo/undodat.cxx index b3de44ea8c8a..d3cef474a5d0 100644 --- a/sc/source/ui/undo/undodat.cxx +++ b/sc/source/ui/undo/undodat.cxx @@ -1676,7 +1676,7 @@ ScUndoChartData::ScUndoChartData( ScDocShell* pNewDocShell, const OUString& rNam bAddRange( bAdd ) { aNewRangeListRef = new ScRangeList; - aNewRangeListRef->Append( rNew ); + aNewRangeListRef->push_back( rNew ); Init(); } diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx index d68573a3264b..0e6b0ef4e16a 100644 --- a/sc/source/ui/unoobj/cellsuno.cxx +++ b/sc/source/ui/unoobj/cellsuno.cxx @@ -919,19 +919,17 @@ static SCTAB lcl_FirstTab( const ScRangeList& rRanges ) { if (rRanges.empty()) throw std::out_of_range("empty range"); - const ScRange* pFirst = rRanges[0]; - if (pFirst) - return pFirst->aStart.Tab(); - return 0; // shouldn't happen + const ScRange & rFirst = rRanges[0]; + return rFirst.aStart.Tab(); } static bool lcl_WholeSheet( const ScRangeList& rRanges ) { if ( rRanges.size() == 1 ) { - const ScRange* pRange = rRanges[0]; - if ( pRange && pRange->aStart.Col() == 0 && pRange->aEnd.Col() == MAXCOL && - pRange->aStart.Row() == 0 && pRange->aEnd.Row() == MAXROW ) + const ScRange & rRange = rRanges[0]; + if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == MAXCOL && + rRange.aStart.Row() == 0 && rRange.aEnd.Row() == MAXROW ) return true; } return false; @@ -1062,8 +1060,8 @@ void ScHelperFunctions::ApplyBorder( ScDocShell* pDocShell, const ScRangeList& r size_t nCount = rRanges.size(); for (size_t i = 0; i < nCount; ++i) { - ScRange aRange( *rRanges[ i ] ); - SCTAB nTab = aRange.aStart.Tab(); + ScRange const & rRange = rRanges[ i ]; + SCTAB nTab = rRange.aStart.Tab(); if (bUndo) { @@ -1071,11 +1069,11 @@ void ScHelperFunctions::ApplyBorder( ScDocShell* pDocShell, const ScRangeList& r pUndoDoc->InitUndo( &rDoc, nTab, nTab ); else pUndoDoc->AddUndoTab( nTab, nTab ); - rDoc.CopyToDocument(aRange, InsertDeleteFlags::ATTRIB, false, *pUndoDoc); + rDoc.CopyToDocument(rRange, InsertDeleteFlags::ATTRIB, false, *pUndoDoc); } ScMarkData aMark; - aMark.SetMarkArea( aRange ); + aMark.SetMarkArea( rRange ); aMark.SelectTable( nTab, true ); rDoc.ApplySelectionFrame(aMark, rOuter, &rInner); @@ -1089,7 +1087,7 @@ void ScHelperFunctions::ApplyBorder( ScDocShell* pDocShell, const ScRangeList& r } for (size_t i = 0; i < nCount; ++i ) - pDocShell->PostPaint( *rRanges[ i ], PaintPartFlags::Grid, SC_PF_LINES | SC_PF_TESTMERGE ); + pDocShell->PostPaint( rRanges[ i ], PaintPartFlags::Grid, SC_PF_LINES | SC_PF_TESTMERGE ); pDocShell->SetDocumentModified(); } @@ -1422,7 +1420,7 @@ ScCellRangesBase::ScCellRangesBase(ScDocShell* pDocSh, const ScRange& rR) : ScRange aCellRange(rR); aCellRange.PutInOrder(); - aRanges.Append( aCellRange ); + aRanges.push_back( aCellRange ); if (pDocShell) // Null if created with createInstance { @@ -1585,14 +1583,11 @@ void ScCellRangesBase::Notify( SfxBroadcaster&, const SfxHint& rHint ) ) { // #101755#; the range size of a sheet does not change - ScRange* pR = aRanges.front(); - if (pR) - { - pR->aStart.SetCol(0); - pR->aStart.SetRow(0); - pR->aEnd.SetCol(MAXCOL); - pR->aEnd.SetRow(MAXROW); - } + ScRange & rR = aRanges.front(); + rR.aStart.SetCol(0); + rR.aStart.SetRow(0); + rR.aEnd.SetCol(MAXCOL); + rR.aEnd.SetRow(MAXROW); } RefChanged(); @@ -1689,7 +1684,7 @@ void ScCellRangesBase::RefChanged() ScDocument& rDoc = pDocShell->GetDocument(); for ( size_t i = 0, nCount = aRanges.size(); i < nCount; ++i ) - rDoc.StartListeningArea( *aRanges[ i ], false, pValueListener ); + rDoc.StartListeningArea( aRanges[ i ], false, pValueListener ); } ForgetCurrentAttrs(); @@ -1713,7 +1708,7 @@ void ScCellRangesBase::InitInsertRange(ScDocShell* pDocSh, const ScRange& rR) ScRange aCellRange(rR); aCellRange.PutInOrder(); aRanges.RemoveAll(); - aRanges.Append( aCellRange ); + aRanges.push_back( aCellRange ); pDocShell->GetDocument().AddUnoObject(*this); @@ -1726,7 +1721,7 @@ void ScCellRangesBase::AddRange(const ScRange& rRange, const bool bMergeRanges) if (bMergeRanges) aRanges.Join(rRange); else - aRanges.Append(rRange); + aRanges.push_back(rRange); RefChanged(); } @@ -1736,7 +1731,7 @@ void ScCellRangesBase::SetNewRange(const ScRange& rNew) aCellRange.PutInOrder(); aRanges.RemoveAll(); - aRanges.Append( aCellRange ); + aRanges.push_back( aCellRange ); RefChanged(); } @@ -1818,7 +1813,7 @@ uno::Sequence<sal_Int8> SAL_CALL ScCellRangesBase::getImplementationId() void ScCellRangesBase::PaintGridRanges_Impl( ) { for (size_t i = 0, nCount = aRanges.size(); i < nCount; ++i) - pDocShell->PostPaint( *aRanges[ i ], PaintPartFlags::Grid ); + pDocShell->PostPaint( aRanges[ i ], PaintPartFlags::Grid ); } // XSheetOperation @@ -2095,7 +2090,7 @@ uno::Any SAL_CALL ScCellRangesBase::getPropertyDefault( const OUString& aPropert formula::FormulaGrammar::mapAPItoGrammar( bEnglish, bXML)); aAny <<= uno::Reference<sheet::XSheetConditionalEntries>( - new ScTableConditionalFormat( &rDoc, 0, aRanges[0]->aStart.Tab(), eGrammar )); + new ScTableConditionalFormat( &rDoc, 0, aRanges[0].aStart.Tab(), eGrammar )); } break; case SC_WID_UNO_VALIDAT: @@ -2301,10 +2296,10 @@ void ScCellRangesBase::SetOnePropertyValue( const SfxItemPropertySimpleEntry* pE { for (size_t i = 0, n = aRanges.size(); i < n; ++i) { - ScRange aRange = *aRanges[i]; + ScRange const & rRange = aRanges[i]; /* TODO: Iterate through the range */ - ScAddress aAddr = aRange.aStart; + ScAddress aAddr = rRange.aStart; ScDocument& rDoc = pDocShell->GetDocument(); ScRefCellValue aCell(rDoc, aAddr); @@ -2327,7 +2322,7 @@ void ScCellRangesBase::SetOnePropertyValue( const SfxItemPropertySimpleEntry* pE aEngine.QuickSetAttribs(aAttr, ESelection(0, 0, 0, aStr.getLength())); // The cell will own the text object instance. - rDoc.SetEditText(aRanges[0]->aStart, aEngine.CreateTextObject()); + rDoc.SetEditText(aRanges[0].aStart, aEngine.CreateTextObject()); } } } @@ -2392,16 +2387,16 @@ void ScCellRangesBase::SetOnePropertyValue( const SfxItemPropertySimpleEntry* pE formula::FormulaGrammar::GRAM_UNSPECIFIED : formula::FormulaGrammar::mapAPItoGrammar( bEnglish, bXML)); - SCTAB nTab = aRanges.front()->aStart.Tab(); + SCTAB nTab = aRanges.front().aStart.Tab(); // To remove conditional formats for all cells in aRanges we need to: // Remove conditional format data from cells' attributes rDoc.RemoveCondFormatData( aRanges, nTab, 0 ); // And also remove ranges from conditional formats list for (size_t i = 0; i < aRanges.size(); ++i) { - rDoc.GetCondFormList( aRanges[i]->aStart.Tab() )->DeleteArea( - aRanges[i]->aStart.Col(), aRanges[i]->aStart.Row(), - aRanges[i]->aEnd.Col(), aRanges[i]->aEnd.Row() ); + rDoc.GetCondFormList( aRanges[i].aStart.Tab() )->DeleteArea( + aRanges[i].aStart.Col(), aRanges[i].aStart.Row(), + aRanges[i].aEnd.Col(), aRanges[i].aEnd.Row() ); } // Then we can apply new conditional format if there is one @@ -2415,7 +2410,7 @@ void ScCellRangesBase::SetOnePropertyValue( const SfxItemPropertySimpleEntry* pE // and repaint for (size_t i = 0; i < aRanges.size(); ++i) - pDocShell->PostPaint(*aRanges[i], PaintPartFlags::Grid); + pDocShell->PostPaint(aRanges[i], PaintPartFlags::Grid); pDocShell->SetDocumentModified(); } } @@ -2538,14 +2533,14 @@ void ScCellRangesBase::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pE //! loop through all ranges if ( !aRanges.empty() ) { - const ScRange* pFirst = aRanges[ 0 ]; + const ScRange & rFirst = aRanges[ 0 ]; SvxBoxItem aOuter(ATTR_BORDER); SvxBoxInfoItem aInner(ATTR_BORDER_INNER); ScDocument& rDoc = pDocShell->GetDocument(); ScMarkData aMark; - aMark.SetMarkArea( *pFirst ); - aMark.SelectTable( pFirst->aStart.Tab(), true ); + aMark.SetMarkArea( rFirst ); + aMark.SelectTable( rFirst.aStart.Tab(), true ); rDoc.GetSelectionFrame( aMark, aOuter, aInner ); if (pEntry->nWID == SC_WID_UNO_TBLBORD2) @@ -2574,7 +2569,7 @@ void ScCellRangesBase::GetOnePropertyValue( const SfxItemPropertySimpleEntry* pE if(!rIndex.empty()) nIndex = rIndex[0]; rAny <<= uno::Reference<sheet::XSheetConditionalEntries>( - new ScTableConditionalFormat( &rDoc, nIndex, aRanges.front()->aStart.Tab(), eGrammar )); + new ScTableConditionalFormat( &rDoc, nIndex, aRanges.front().aStart.Tab(), eGrammar )); } } break; @@ -3012,11 +3007,11 @@ ScMemChart* ScCellRangesBase::CreateMemChart_Impl() const // (only here - Listeners are registered for the whole area) //! check immediately if a ScTableSheetObj? - const ScRange* pRange = aRanges[0]; - if ( pRange->aStart.Col() == 0 && pRange->aEnd.Col() == MAXCOL && - pRange->aStart.Row() == 0 && pRange->aEnd.Row() == MAXROW ) + const ScRange & rRange = aRanges[0]; + if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == MAXCOL && + rRange.aStart.Row() == 0 && rRange.aEnd.Row() == MAXROW ) { - SCTAB nTab = pRange->aStart.Tab(); + SCTAB nTab = rRange.aStart.Tab(); SCCOL nStartX; SCROW nStartY; // Get start @@ -3034,8 +3029,7 @@ ScMemChart* ScCellRangesBase::CreateMemChart_Impl() const nEndY = 0; } - xChartRanges = new ScRangeList; - xChartRanges->Append( ScRange( nStartX, nStartY, nTab, nEndX, nEndY, nTab ) ); + xChartRanges = new ScRangeList( ScRange( nStartX, nStartY, nTab, nEndX, nEndY, nTab ) ); } } if (!xChartRanges.is()) // otherwise take Ranges directly @@ -3081,13 +3075,13 @@ ScRangeListRef ScCellRangesBase::GetLimitedChartRanges_Impl( long nDataColumns, { if ( aRanges.size() == 1 ) { - const ScRange* pRange = aRanges[0]; - if ( pRange->aStart.Col() == 0 && pRange->aEnd.Col() == MAXCOL && - pRange->aStart.Row() == 0 && pRange->aEnd.Row() == MAXROW ) + const ScRange & rRange = aRanges[0]; + if ( rRange.aStart.Col() == 0 && rRange.aEnd.Col() == MAXCOL && + rRange.aStart.Row() == 0 && rRange.aEnd.Row() == MAXROW ) { // if aRanges is a complete sheet, limit to given size - SCTAB nTab = pRange->aStart.Tab(); + SCTAB nTab = rRange.aStart.Tab(); long nEndColumn = nDataColumns - 1 + ( bChartColAsHdr ? 1 : 0 ); if ( nEndColumn < 0 ) @@ -3101,8 +3095,7 @@ ScRangeListRef ScCellRangesBase::GetLimitedChartRanges_Impl( long nDataColumns, if ( nEndRow > MAXROW ) nEndRow = MAXROW; - ScRangeListRef xChartRanges = new ScRangeList; - xChartRanges->Append( ScRange( 0, 0, nTab, static_cast<SCCOL>(nEndColumn), static_cast<SCROW>(nEndRow), nTab ) ); + ScRangeListRef xChartRanges = new ScRangeList( ScRange( 0, 0, nTab, static_cast<SCCOL>(nEndColumn), static_cast<SCROW>(nEndRow), nTab ) ); return xChartRanges; } } @@ -3386,7 +3379,7 @@ void SAL_CALL ScCellRangesBase::addModifyListener(const uno::Reference<util::XMo ScDocument& rDoc = pDocShell->GetDocument(); for ( size_t i = 0, nCount = aRanges.size(); i < nCount; i++) - rDoc.StartListeningArea( *aRanges[ i ], false, pValueListener ); + rDoc.StartListeningArea( aRanges[ i ], false, pValueListener ); acquire(); // don't lose this object (one ref for all listeners) } @@ -3475,9 +3468,9 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryEmptyCel // mark occupied cells for (size_t i = 0, nCount = aRanges.size(); i < nCount; ++i) { - ScRange aRange = *aRanges[ i ]; + ScRange const & rRange = aRanges[ i ]; - ScCellIterator aIter( &rDoc, aRange ); + ScCellIterator aIter( &rDoc, rRange ); for (bool bHasCell = aIter.first(); bHasCell; bHasCell = aIter.next()) { // notes count as non-empty @@ -3510,9 +3503,9 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryContentC // select matching cells for ( size_t i = 0, nCount = aRanges.size(); i < nCount; ++i ) { - ScRange aRange = *aRanges[ i ]; + ScRange const & rRange = aRanges[ i ]; - ScCellIterator aIter( &rDoc, aRange ); + ScCellIterator aIter( &rDoc, rRange ); for (bool bHasCell = aIter.first(); bHasCell; bHasCell = aIter.next()) { bool bAdd = false; @@ -3599,9 +3592,9 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryFormulaC // select matching cells for ( size_t i = 0, nCount = aRanges.size(); i < nCount; ++i ) { - ScRange aRange = *aRanges[ i ]; + ScRange const & rRange = aRanges[ i ]; - ScCellIterator aIter( &rDoc, aRange ); + ScCellIterator aIter( &rDoc, rRange ); for (bool bHasCell = aIter.first(); bHasCell; bHasCell = aIter.next()) { if (aIter.getType() == CELLTYPE_FORMULA) @@ -3673,7 +3666,7 @@ uno::Reference<sheet::XSheetCellRanges> ScCellRangesBase::QueryDifferences_Impl( for (i=0; i<nRangeCount; i++) { - ScRange aRange( *aRanges[ i ] ); + ScRange aRange( aRanges[ i ] ); if ( aRange.Intersects( aCellRange ) ) { if (bColumnDiff) @@ -3697,9 +3690,9 @@ uno::Reference<sheet::XSheetCellRanges> ScCellRangesBase::QueryDifferences_Impl( ScAddress aCmpAddr; for (i=0; i<nRangeCount; i++) { - ScRange aRange( *aRanges[ i ] ); + ScRange const & rRange = aRanges[ i ]; - ScCellIterator aIter( &rDoc, aRange ); + ScCellIterator aIter( &rDoc, rRange ); for (bool bHasCell = aIter.first(); bHasCell; bHasCell = aIter.next()) { if (bColumnDiff) @@ -3748,7 +3741,7 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryIntersec ScRangeList aNew; for ( size_t i = 0, nCount = aRanges.size(); i < nCount; ++i ) { - ScRange aTemp( *aRanges[ i ] ); + ScRange aTemp( aRanges[ i ] ); if ( aTemp.Intersects( aMask ) ) aNew.Join( ScRange( std::max( aTemp.aStart.Col(), aMask.aStart.Col() ), std::max( aTemp.aStart.Row(), aMask.aStart.Row() ), @@ -3784,8 +3777,8 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryPreceden for (size_t nR = 0, nCount = aNewRanges.size(); nR<nCount; ++nR) { - ScRange aRange( *aNewRanges[ nR] ); - ScCellIterator aIter( &rDoc, aRange ); + ScRange const & rRange = aNewRanges[ nR]; + ScCellIterator aIter( &rDoc, rRange ); for (bool bHasCell = aIter.first(); bHasCell; bHasCell = aIter.next()) { if (aIter.getType() != CELLTYPE_FORMULA) @@ -3842,14 +3835,17 @@ uno::Reference<sheet::XSheetCellRanges> SAL_CALL ScCellRangesBase::queryDependen bool bMark = false; ScDetectiveRefIter aIter(aCellIter.getFormulaCell()); ScRange aRefRange; - while ( aIter.GetNextRef( aRefRange) ) + while ( aIter.GetNextRef( aRefRange) && !bMark ) { size_t nRangesCount = aNewRanges.size(); for (size_t nR = 0; nR < nRangesCount; ++nR) { - ScRange aRange( *aNewRanges[ nR ] ); - if (aRange.Intersects(aRefRange)) + ScRange const & rRange = aNewRanges[ nR ]; + if (rRange.Intersects(aRefRange)) + { bMark = true; // depending on part of Range + break; + } } } if (bMark) @@ -3984,7 +3980,7 @@ uno::Reference<uno::XInterface> SAL_CALL ScCellRangesBase::findNext( const ScRangeList& rStartRanges = pRangesImp->GetRangeList(); if ( rStartRanges.size() == 1 ) { - ScAddress aStartPos = rStartRanges[ 0 ]->aStart; + ScAddress aStartPos = rStartRanges[ 0 ].aStart; return Find_Impl( xDesc, &aStartPos ); } } @@ -4194,11 +4190,11 @@ ScCellRangeObj* ScCellRangesObj::GetObjectByIndex_Impl(sal_Int32 nIndex) const const ScRangeList& rRanges = GetRangeList(); if ( pDocSh && nIndex >= 0 && nIndex < sal::static_int_cast<sal_Int32>(rRanges.size()) ) { - ScRange aRange( *rRanges[ nIndex ] ); - if ( aRange.aStart == aRange.aEnd ) - return new ScCellObj( pDocSh, aRange.aStart ); + ScRange const & rRange = rRanges[ nIndex ]; + if ( rRange.aStart == rRange.aEnd ) + return new ScCellObj( pDocSh, rRange.aStart ); else - return new ScCellRangeObj( pDocSh, aRange ); + return new ScCellRangeObj( pDocSh, rRange ); } return nullptr; // no DocShell or wrong index @@ -4217,7 +4213,7 @@ uno::Sequence<table::CellRangeAddress> SAL_CALL ScCellRangesObj::getRangeAddress table::CellRangeAddress* pAry = aSeq.getArray(); for ( size_t i=0; i < nCount; i++) { - ScUnoConversion::FillApiRange( aRangeAddress, *rRanges[ i ] ); + ScUnoConversion::FillApiRange( aRangeAddress, rRanges[ i ] ); pAry[i] = aRangeAddress; } return aSeq; @@ -4285,13 +4281,13 @@ void SAL_CALL ScCellRangesObj::removeRangeAddress( const table::CellRangeAddress ScRangeList aNotSheetRanges; for (size_t i = 0; i < rRanges.size(); ++i) { - if (rRanges[ i]->aStart.Tab() == rRange.Sheet) + if (rRanges[ i].aStart.Tab() == rRange.Sheet) { - aSheetRanges.Append( *rRanges[ i ] ); + aSheetRanges.push_back( rRanges[ i ] ); } else { - aNotSheetRanges.Append( *rRanges[ i ] ); + aNotSheetRanges.push_back( rRanges[ i ] ); } } ScMarkData aMarkData; @@ -4317,7 +4313,7 @@ void SAL_CALL ScCellRangesObj::removeRangeAddress( const table::CellRangeAddress aMarkData.FillRangeListWithMarks( &aNew, false ); for ( size_t j = 0; j < aNew.size(); ++j) { - AddRange(*aNew[ j ], false); + AddRange(aNew[ j ], false); } } @@ -4396,7 +4392,7 @@ void SAL_CALL ScCellRangesObj::insertByName( const OUString& aName, const uno::A const ScRangeList& rAddRanges = pRangesImp->GetRangeList(); size_t nAddCount = rAddRanges.size(); for ( size_t i = 0; i < nAddCount; i++ ) - aNew.Join( *rAddRanges[ i ] ); + aNew.Join( rAddRanges[ i ] ); SetNewRanges(aNew); bDone = true; @@ -4405,7 +4401,7 @@ void SAL_CALL ScCellRangesObj::insertByName( const OUString& aName, const uno::A // if a name is given, also insert into list of named entries // (only possible for a single range) // name is not in m_pImpl->m_aNamedEntries (tested above) - m_pImpl->m_aNamedEntries.emplace_back( aName, *rAddRanges[ 0 ] ); + m_pImpl->m_aNamedEntries.emplace_back( aName, rAddRanges[ 0 ] ); } } } @@ -4426,7 +4422,7 @@ static bool lcl_FindRangeByName( const ScRangeList& rRanges, ScDocShell* pDocSh, ScDocument& rDoc = pDocSh->GetDocument(); for ( size_t i = 0, nCount = rRanges.size(); i < nCount; i++ ) { - aRangeStr = rRanges[ i ]->Format(ScRefFlags::VALID | ScRefFlags::TAB_3D, &rDoc); + aRangeStr = rRanges[ i ].Format(ScRefFlags::VALID | ScRefFlags::TAB_3D, &rDoc); if ( aRangeStr == rName ) { rIndex = i; @@ -4446,7 +4442,7 @@ static bool lcl_FindRangeOrEntry( const ScNamedEntryArr_Impl& rNamedEntries, size_t nIndex = 0; if ( lcl_FindRangeByName( rRanges, pDocSh, rName, nIndex ) ) { - rFound = *rRanges[ nIndex ]; + rFound = rRanges[ nIndex ]; return true; } @@ -4504,7 +4500,7 @@ void SAL_CALL ScCellRangesObj::removeByName( const OUString& aName ) ScRangeList aNew; for ( size_t i = 0, nCount = rRanges.size(); i < nCount; i++ ) if (i != nIndex) - aNew.Append( *rRanges[ i ] ); + aNew.push_back( rRanges[ i ] ); SetNewRanges(aNew); bDone = true; } @@ -4521,7 +4517,7 @@ void SAL_CALL ScCellRangesObj::removeByName( const OUString& aName ) if (m_pImpl->m_aNamedEntries[n].GetName() == aName) { aDiff.RemoveAll(); - aDiff.Append(m_pImpl->m_aNamedEntries[n].GetRange()); + aDiff.push_back(m_pImpl->m_aNamedEntries[n].GetRange()); bValid = true; } } @@ -4532,9 +4528,9 @@ void SAL_CALL ScCellRangesObj::removeByName( const OUString& aName ) for ( size_t i = 0, nDiffCount = aDiff.size(); i < nDiffCount; i++ ) { - ScRange* pDiffRange = aDiff[ i ]; - if (aMarkData.GetTableSelect( pDiffRange->aStart.Tab() )) - aMarkData.SetMultiMarkArea( *pDiffRange, false ); + ScRange const & rDiffRange = aDiff[ i ]; + if (aMarkData.GetTableSelect( rDiffRange.aStart.Tab() )) + aMarkData.SetMultiMarkArea( rDiffRange, false ); } ScRangeList aNew; @@ -4616,11 +4612,11 @@ uno::Sequence<OUString> SAL_CALL ScCellRangesObj::getElementNames() for (size_t i=0; i < nCount; i++) { // use given name if for exactly this range, otherwise just format - ScRange aRange = *rRanges[ i ]; + ScRange const & rRange = rRanges[ i ]; if (m_pImpl->m_aNamedEntries.empty() || - !lcl_FindEntryName(m_pImpl->m_aNamedEntries, aRange, aRangeStr)) + !lcl_FindEntryName(m_pImpl->m_aNamedEntries, rRange, aRangeStr)) { - aRangeStr = aRange.Format(ScRefFlags::VALID | ScRefFlags::TAB_3D, &rDoc); + aRangeStr = rRange.Format(ScRefFlags::VALID | ScRefFlags::TAB_3D, &rDoc); } pAry[i] = aRangeStr; } @@ -4727,8 +4723,8 @@ void ScCellRangeObj::RefChanged() OSL_ENSURE(rRanges.size() == 1, "What ranges ?!?!"); if ( !rRanges.empty() ) { - const ScRange* pFirst = rRanges[0]; - aRange = ScRange(*pFirst); + const ScRange & rFirst = rRanges[0]; + aRange = rFirst; aRange.PutInOrder(); } } @@ -5979,8 +5975,7 @@ void ScCellObj::RefChanged() OSL_ENSURE(rRanges.size() == 1, "What ranges ?!?!"); if ( !rRanges.empty() ) { - const ScRange* pFirst = rRanges[ 0 ]; - aCellPos = pFirst->aStart; + aCellPos = rRanges[ 0 ].aStart; } } @@ -6827,8 +6822,7 @@ SCTAB ScTableSheetObj::GetTab_Impl() const OSL_ENSURE(rRanges.size() == 1, "What ranges ?!?!"); if ( !rRanges.empty() ) { - const ScRange* pFirst = rRanges[ 0 ]; - return pFirst->aStart.Tab(); + return rRanges[ 0 ].aStart.Tab(); } return 0; } @@ -6924,7 +6918,7 @@ uno::Reference<sheet::XSheetCellCursor> SAL_CALL ScTableSheetObj::createCursorBy { const ScRangeList& rRanges = pRangesImp->GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - return new ScCellCursorObj( pDocSh, *rRanges[ 0 ] ); + return new ScCellCursorObj( pDocSh, rRanges[ 0 ] ); } } return nullptr; @@ -7933,12 +7927,12 @@ uno::Sequence< table::CellRangeAddress > SAL_CALL ScTableSheetObj::getRanges( ) table::CellRangeAddress* pAry = aRetRanges.getArray(); for( size_t nIndex = 0; nIndex < nCount; nIndex++ ) { - const ScRange* pRange = (*pRangeList)[nIndex]; - pAry->StartColumn = pRange->aStart.Col(); - pAry->StartRow = pRange->aStart.Row(); - pAry->EndColumn = pRange->aEnd.Col(); - pAry->EndRow = pRange->aEnd.Row(); - pAry->Sheet = pRange->aStart.Tab(); + const ScRange & rRange = (*pRangeList)[nIndex]; + pAry->StartColumn = rRange.aStart.Col(); + pAry->StartRow = rRange.aStart.Row(); + pAry->EndColumn = rRange.aEnd.Col(); + pAry->EndRow = rRange.aEnd.Row(); + pAry->Sheet = rRange.aStart.Tab(); ++pAry; } return aRetRanges; @@ -8941,10 +8935,7 @@ ScCellsEnumeration::ScCellsEnumeration(ScDocShell* pDocSh, const ScRangeList& rR bAtEnd = true; else { - SCTAB nTab = 0; - const ScRange* pFirst = aRanges[ 0 ]; - if (pFirst) - nTab = pFirst->aStart.Tab(); + SCTAB nTab = aRanges[ 0 ].aStart.Tab(); aPos = ScAddress(0,0,nTab); CheckPos_Impl(); // set aPos on first matching cell } @@ -9016,13 +9007,12 @@ void ScCellsEnumeration::Notify( SfxBroadcaster&, const SfxHint& rHint ) if (!bAtEnd) // adjust aPos { - ScRangeList aNew; - aNew.Append(ScRange(aPos)); + ScRangeList aNew { ScRange(aPos) }; aNew.UpdateReference( pRefHint->GetMode(), &pDocShell->GetDocument(), pRefHint->GetRange(), pRefHint->GetDx(), pRefHint->GetDy(), pRefHint->GetDz() ); if (aNew.size()==1) { - aPos = aNew[ 0 ]->aStart; + aPos = aNew[ 0 ].aStart; CheckPos_Impl(); } } @@ -9401,8 +9391,7 @@ const ScRangeList& ScUniqueFormatsEntry::GetRanges() { if ( eState == STATE_SINGLE ) { - aReturnRanges = new ScRangeList; - aReturnRanges->Append( aSingleRange ); + aReturnRanges = new ScRangeList( aSingleRange ); return *aReturnRanges; } @@ -9422,7 +9411,7 @@ const ScRangeList& ScUniqueFormatsEntry::GetRanges() aReturnRanges = new ScRangeList; ScRangeVector::const_iterator aCompEnd( aCompletedRanges.end() ); for ( ScRangeVector::const_iterator aCompIter( aCompletedRanges.begin() ); aCompIter != aCompEnd; ++aCompIter ) - aReturnRanges->Append( *aCompIter ); + aReturnRanges->push_back( *aCompIter ); aCompletedRanges.clear(); return *aReturnRanges; @@ -9439,7 +9428,7 @@ struct ScUniqueFormatsOrder OSL_ENSURE( rList1.size() > 0 && rList2.size() > 0, "ScUniqueFormatsOrder: empty list" ); // compare start positions using ScAddress comparison operator - return ( rList1[ 0 ]->aStart < rList2[ 0 ]->aStart ); + return ( rList1[ 0 ].aStart < rList2[ 0 ].aStart ); } }; diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx index 96f527efca71..e0def91cb78b 100644 --- a/sc/source/ui/unoobj/chart2uno.cxx +++ b/sc/source/ui/unoobj/chart2uno.cxx @@ -2669,10 +2669,9 @@ void ScChart2DataSequence::UpdateTokensFromRanges(const ScRangeList& rRanges) for ( size_t i = 0, nCount = rRanges.size(); i < nCount; ++i ) { ScTokenRef pToken; - const ScRange* pRange = rRanges[i]; - OSL_ENSURE(pRange, "range object is nullptr."); + const ScRange & rRange = rRanges[i]; - ScRefTokenHelper::getTokenFromRange(pToken, *pRange); + ScRefTokenHelper::getTokenFromRange(pToken, rRange); sal_uInt32 nOrigPos = (*m_pRangeIndices)[i]; m_aTokens[nOrigPos] = pToken; } @@ -2756,7 +2755,7 @@ void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint { ScRange aRange; ScRefTokenHelper::getRangeFromToken(aRange, *itr, ScAddress()); - aRanges.Append(aRange); + aRanges.push_back(aRange); sal_uInt32 nPos = distance(itrBeg, itr); m_pRangeIndices->push_back(nPos); } diff --git a/sc/source/ui/unoobj/chartuno.cxx b/sc/source/ui/unoobj/chartuno.cxx index 1c7cb5672562..c146e3aba2e3 100644 --- a/sc/source/ui/unoobj/chartuno.cxx +++ b/sc/source/ui/unoobj/chartuno.cxx @@ -166,7 +166,7 @@ void SAL_CALL ScChartsObj::addNewByName( const OUString& rName, { ScRange aRange( static_cast<SCCOL>(pAry[i].StartColumn), pAry[i].StartRow, pAry[i].Sheet, static_cast<SCCOL>(pAry[i].EndColumn), pAry[i].EndRow, pAry[i].Sheet ); - pList->Append( aRange ); + pList->push_back( aRange ); } } ScRangeListRef xNewRanges( pList ); @@ -531,7 +531,7 @@ void ScChartObj::setFastPropertyValue_NoBroadcast( sal_Int32 nHandle, const uno: { ScRange aRange; ScUnoConversion::FillScRange( aRange, aCellRange ); - rRangeList->Append( aRange ); + rRangeList->push_back( aRange ); } if ( pDocShell ) { @@ -576,9 +576,9 @@ void ScChartObj::getFastPropertyValue( uno::Any& rValue, sal_Int32 nHandle ) con table::CellRangeAddress* pCellRanges = aCellRanges.getArray(); for (size_t i = 0; i < nCount; ++i) { - ScRange aRange(*(*rRangeList)[i]); + ScRange const & rRange = (*rRangeList)[i]; table::CellRangeAddress aCellRange; - ScUnoConversion::FillApiRange(aCellRange, aRange); + ScUnoConversion::FillApiRange(aCellRange, rRange); pCellRanges[i] = aCellRange; } rValue <<= aCellRanges; @@ -661,13 +661,13 @@ uno::Sequence<table::CellRangeAddress> SAL_CALL ScChartObj::getRanges() table::CellRangeAddress* pAry = aSeq.getArray(); for (size_t i = 0; i < nCount; i++) { - ScRange aRange( *(*xRanges)[i] ); + ScRange const & rRange = (*xRanges)[i]; - aRangeAddress.Sheet = aRange.aStart.Tab(); - aRangeAddress.StartColumn = aRange.aStart.Col(); - aRangeAddress.StartRow = aRange.aStart.Row(); - aRangeAddress.EndColumn = aRange.aEnd.Col(); - aRangeAddress.EndRow = aRange.aEnd.Row(); + aRangeAddress.Sheet = rRange.aStart.Tab(); + aRangeAddress.StartColumn = rRange.aStart.Col(); + aRangeAddress.StartRow = rRange.aStart.Row(); + aRangeAddress.EndColumn = rRange.aEnd.Col(); + aRangeAddress.EndRow = rRange.aEnd.Row(); pAry[i] = aRangeAddress; } @@ -694,7 +694,7 @@ void SAL_CALL ScChartObj::setRanges( const uno::Sequence<table::CellRangeAddress { ScRange aRange( static_cast<SCCOL>(pAry[i].StartColumn), pAry[i].StartRow, pAry[i].Sheet, static_cast<SCCOL>(pAry[i].EndColumn), pAry[i].EndRow, pAry[i].Sheet ); - pList->Append( aRange ); + pList->push_back( aRange ); } } ScRangeListRef xNewRanges( pList ); diff --git a/sc/source/ui/unoobj/condformatuno.cxx b/sc/source/ui/unoobj/condformatuno.cxx index 50fb8a76e326..4f1a5e4f0baa 100644 --- a/sc/source/ui/unoobj/condformatuno.cxx +++ b/sc/source/ui/unoobj/condformatuno.cxx @@ -354,7 +354,7 @@ sal_Int32 ScCondFormatsObj::createByRange(const uno::Reference< sheet::XSheetCel if (aCoreRange.empty()) throw lang::IllegalArgumentException(); - SCTAB nTab = aCoreRange[0]->aStart.Tab(); + SCTAB nTab = aCoreRange[0].aStart.Tab(); ScConditionalFormat* pNewFormat = new ScConditionalFormat(0, &mpDocShell->GetDocument()); pNewFormat->SetRange(aCoreRange); diff --git a/sc/source/ui/unoobj/cursuno.cxx b/sc/source/ui/unoobj/cursuno.cxx index edeaa08590f1..9431200524bf 100644 --- a/sc/source/ui/unoobj/cursuno.cxx +++ b/sc/source/ui/unoobj/cursuno.cxx @@ -98,7 +98,7 @@ void SAL_CALL ScCellCursorObj::collapseToCurrentRegion() SolarMutexGuard aGuard; const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aOneRange( *rRanges[ 0 ] ); + ScRange aOneRange( rRanges[ 0 ] ); aOneRange.PutInOrder(); ScDocShell* pDocSh = GetDocShell(); @@ -123,7 +123,7 @@ void SAL_CALL ScCellCursorObj::collapseToCurrentArray() SolarMutexGuard aGuard; const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aOneRange( *rRanges[ 0 ] ); + ScRange aOneRange( rRanges[ 0 ] ); aOneRange.PutInOrder(); ScAddress aCursor(aOneRange.aStart); // use the start address of the range @@ -158,7 +158,7 @@ void SAL_CALL ScCellCursorObj::collapseToMergedArea() { const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aNewRange( *rRanges[ 0 ] ); + ScRange aNewRange( rRanges[ 0 ] ); ScDocument& rDoc = pDocSh->GetDocument(); rDoc.ExtendOverlapped( aNewRange ); @@ -173,7 +173,7 @@ void SAL_CALL ScCellCursorObj::expandToEntireColumns() SolarMutexGuard aGuard; const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aNewRange( *rRanges[ 0 ] ); + ScRange aNewRange( rRanges[ 0 ] ); aNewRange.aStart.SetRow( 0 ); aNewRange.aEnd.SetRow( MAXROW ); @@ -186,7 +186,7 @@ void SAL_CALL ScCellCursorObj::expandToEntireRows() SolarMutexGuard aGuard; const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aNewRange( *rRanges[ 0 ] ); + ScRange aNewRange( rRanges[ 0 ] ); aNewRange.aStart.SetCol( 0 ); aNewRange.aEnd.SetCol( MAXCOL ); @@ -206,7 +206,7 @@ void SAL_CALL ScCellCursorObj::collapseToSize( sal_Int32 nColumns, sal_Int32 nRo { const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aNewRange( *rRanges[ 0 ] ); + ScRange aNewRange( rRanges[ 0 ] ); aNewRange.PutInOrder(); //! really? @@ -237,7 +237,7 @@ void SAL_CALL ScCellCursorObj::gotoStartOfUsedArea(sal_Bool bExpand) { const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aNewRange( *rRanges[0] ); + ScRange aNewRange( rRanges[0] ); SCTAB nTab = aNewRange.aStart.Tab(); SCCOL nUsedX = 0; // fetch the beginning @@ -264,7 +264,7 @@ void SAL_CALL ScCellCursorObj::gotoEndOfUsedArea( sal_Bool bExpand ) { const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aNewRange( *rRanges[ 0 ]); + ScRange aNewRange( rRanges[ 0 ]); SCTAB nTab = aNewRange.aStart.Tab(); SCCOL nUsedX = 0; // fetch the end @@ -293,7 +293,7 @@ void SAL_CALL ScCellCursorObj::gotoStart() SolarMutexGuard aGuard; const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aOneRange( *rRanges[ 0 ]); + ScRange aOneRange( rRanges[ 0 ]); aOneRange.PutInOrder(); ScDocShell* pDocSh = GetDocShell(); @@ -321,7 +321,7 @@ void SAL_CALL ScCellCursorObj::gotoEnd() SolarMutexGuard aGuard; const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aOneRange( *rRanges[ 0 ] ); + ScRange aOneRange( rRanges[ 0 ] ); aOneRange.PutInOrder(); ScDocShell* pDocSh = GetDocShell(); @@ -346,7 +346,7 @@ void SAL_CALL ScCellCursorObj::gotoNext() SolarMutexGuard aGuard; const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aOneRange( *rRanges[ 0 ] ); + ScRange aOneRange( rRanges[ 0 ] ); aOneRange.PutInOrder(); ScAddress aCursor(aOneRange.aStart); // always use start of block @@ -368,7 +368,7 @@ void SAL_CALL ScCellCursorObj::gotoPrevious() SolarMutexGuard aGuard; const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aOneRange( *rRanges[ 0 ] ); + ScRange aOneRange( rRanges[ 0 ] ); aOneRange.PutInOrder(); ScAddress aCursor(aOneRange.aStart); // always use start of block @@ -390,7 +390,7 @@ void SAL_CALL ScCellCursorObj::gotoOffset( sal_Int32 nColumnOffset, sal_Int32 nR SolarMutexGuard aGuard; const ScRangeList& rRanges = GetRangeList(); OSL_ENSURE( rRanges.size() == 1, "Range? Ranges?" ); - ScRange aOneRange( *rRanges[ 0 ] ); + ScRange aOneRange( rRanges[ 0 ] ); aOneRange.PutInOrder(); if ( aOneRange.aStart.Col() + nColumnOffset >= 0 && diff --git a/sc/source/ui/unoobj/dapiuno.cxx b/sc/source/ui/unoobj/dapiuno.cxx index 0f4af4a65662..9c2a26d65b7a 100644 --- a/sc/source/ui/unoobj/dapiuno.cxx +++ b/sc/source/ui/unoobj/dapiuno.cxx @@ -1310,18 +1310,13 @@ void ScDataPilotTableObj::Notify( SfxBroadcaster& rBC, const SfxHint& rHint ) else if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) ) { ScRange aRange( 0, 0, nTab ); - ScRangeList aRanges; - aRanges.Append( aRange ); + ScRangeList aRanges( aRange ); const ScUpdateRefHint& rRef = static_cast< const ScUpdateRefHint& >( rHint ); if ( aRanges.UpdateReference( rRef.GetMode(), &GetDocShell()->GetDocument(), rRef.GetRange(), rRef.GetDx(), rRef.GetDy(), rRef.GetDz() ) && aRanges.size() == 1 ) { - const ScRange* pRange = aRanges.front(); - if ( pRange ) - { - nTab = pRange->aStart.Tab(); - } + nTab = aRanges.front().aStart.Tab(); } } diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index 8d3881bb99b1..6eeeef3c9684 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -2952,14 +2952,14 @@ void ScModelObj::NotifyChanges( const OUString& rOperation, const ScRangeList& r { uno::Reference< table::XCellRange > xRangeObj; - ScRange aRange( *rRanges[ nIndex ] ); - if ( aRange.aStart == aRange.aEnd ) + ScRange const & rRange = rRanges[ nIndex ]; + if ( rRange.aStart == rRange.aEnd ) { - xRangeObj.set( new ScCellObj( pDocShell, aRange.aStart ) ); + xRangeObj.set( new ScCellObj( pDocShell, rRange.aStart ) ); } else { - xRangeObj.set( new ScCellRangeObj( pDocShell, aRange ) ); + xRangeObj.set( new ScCellRangeObj( pDocShell, rRange ) ); } util::ElementChange& rChange = aEvent.Changes[ static_cast< sal_Int32 >( nIndex ) ]; @@ -3003,9 +3003,9 @@ void ScModelObj::NotifyChanges( const OUString& rOperation, const ScRangeList& r size_t nRangeCount = rRanges.size(); for ( size_t nIndex = 0; nIndex < nRangeCount; ++nIndex ) { - ScRange aRange( *rRanges[ nIndex ] ); - if ( aRange.aStart.Tab() == nTab ) - aTabRanges.Append( aRange ); + ScRange const & rRange = rRanges[ nIndex ]; + if ( rRange.aStart.Tab() == nTab ) + aTabRanges.push_back( rRange ); } size_t nTabRangeCount = aTabRanges.size(); if ( nTabRangeCount > 0 ) @@ -3013,11 +3013,11 @@ void ScModelObj::NotifyChanges( const OUString& rOperation, const ScRangeList& r uno::Reference<uno::XInterface> xTarget; if ( nTabRangeCount == 1 ) { - ScRange aRange( *aTabRanges[ 0 ] ); - if ( aRange.aStart == aRange.aEnd ) - xTarget.set( static_cast<cppu::OWeakObject*>( new ScCellObj( pDocShell, aRange.aStart ) ) ); + ScRange const & rRange = aTabRanges[ 0 ]; + if ( rRange.aStart == rRange.aEnd ) + xTarget.set( static_cast<cppu::OWeakObject*>( new ScCellObj( pDocShell, rRange.aStart ) ) ); else - xTarget.set( static_cast<cppu::OWeakObject*>( new ScCellRangeObj( pDocShell, aRange ) ) ); + xTarget.set( static_cast<cppu::OWeakObject*>( new ScCellRangeObj( pDocShell, rRange ) ) ); } else xTarget.set( static_cast<cppu::OWeakObject*>( new ScCellRangesObj( pDocShell, aTabRanges ) ) ); @@ -3633,9 +3633,8 @@ uno::Sequence < uno::Reference< table::XCellRange > > SAL_CALL ScTableSheetsObj: xRet.realloc(nCount); for( size_t nIndex = 0; nIndex < nCount; nIndex++ ) { - const ScRange* pRange = aRangeList[ nIndex ]; - if( pRange ) - xRet[nIndex] = new ScCellRangeObj(pDocShell, *pRange); + const ScRange & rRange = aRangeList[ nIndex ]; + xRet[nIndex] = new ScCellRangeObj(pDocShell, rRange); } return xRet; diff --git a/sc/source/ui/unoobj/funcuno.cxx b/sc/source/ui/unoobj/funcuno.cxx index 01f202642137..68cf909663f4 100644 --- a/sc/source/ui/unoobj/funcuno.cxx +++ b/sc/source/ui/unoobj/funcuno.cxx @@ -549,18 +549,18 @@ uno::Any SAL_CALL ScFunctionAccess::callFunction( const OUString& aName, const ScRangeList& rRanges = pImpl->GetRangeList(); if ( pSrcDoc && rRanges.size() == 1 ) { - ScRange aSrcRange = *rRanges[ 0 ]; + ScRange const & rSrcRange = rRanges[ 0 ]; long nStartRow = nDocRow; - long nColCount = aSrcRange.aEnd.Col() - aSrcRange.aStart.Col() + 1; - long nRowCount = aSrcRange.aEnd.Row() - aSrcRange.aStart.Row() + 1; + long nColCount = rSrcRange.aEnd.Col() - rSrcRange.aStart.Col() + 1; + long nRowCount = rSrcRange.aEnd.Row() - rSrcRange.aStart.Row() + 1; if ( nStartRow + nRowCount > MAXROWCOUNT ) bOverflow = true; else { // copy data - if ( !lcl_CopyData( pSrcDoc, aSrcRange, pDoc, ScAddress( 0, static_cast<SCROW>(nDocRow), 0 ) ) ) + if ( !lcl_CopyData( pSrcDoc, rSrcRange, pDoc, ScAddress( 0, static_cast<SCROW>(nDocRow), 0 ) ) ) bOverflow = true; } diff --git a/sc/source/ui/unoobj/viewuno.cxx b/sc/source/ui/unoobj/viewuno.cxx index d2538279d043..ec637f1272e8 100644 --- a/sc/source/ui/unoobj/viewuno.cxx +++ b/sc/source/ui/unoobj/viewuno.cxx @@ -626,8 +626,8 @@ static bool lcl_TabInRanges( SCTAB nTab, const ScRangeList& rRanges ) { for (size_t i = 0, nCount = rRanges.size(); i < nCount; ++i) { - const ScRange* pRange = rRanges[ i ]; - if ( nTab >= pRange->aStart.Tab() && nTab <= pRange->aEnd.Tab() ) + const ScRange & rRange = rRanges[ i ]; + if ( nTab >= rRange.aStart.Tab() && nTab <= rRange.aEnd.Tab() ) return true; } return false; @@ -739,25 +739,22 @@ sal_Bool SAL_CALL ScTabViewObj::select( const uno::Any& aSelection ) if ( nRangeCount == 0 ) pViewSh->Unmark(); else if ( nRangeCount == 1 ) - pViewSh->MarkRange( *rRanges[ 0 ] ); + pViewSh->MarkRange( rRanges[ 0 ] ); else { // multiselection - const ScRange* pFirst = rRanges[ 0 ]; - if ( pFirst && !lcl_TabInRanges( rViewData.GetTabNo(), rRanges ) ) - pViewSh->SetTabNo( pFirst->aStart.Tab() ); + const ScRange & rFirst = rRanges[ 0 ]; + if ( !lcl_TabInRanges( rViewData.GetTabNo(), rRanges ) ) + pViewSh->SetTabNo( rFirst.aStart.Tab() ); pViewSh->DoneBlockMode(); pViewSh->InitOwnBlockMode(); rViewData.GetMarkData().MarkFromRangeList( rRanges, true ); pViewSh->MarkDataChanged(); rViewData.GetDocShell()->PostPaintGridAll(); // Marks (old&new) - if ( pFirst ) - { - pViewSh->AlignToCursor( pFirst->aStart.Col(), pFirst->aStart.Row(), - SC_FOLLOW_JUMP ); - pViewSh->SetCursor( pFirst->aStart.Col(), pFirst->aStart.Row() ); - } + pViewSh->AlignToCursor( rFirst.aStart.Col(), rFirst.aStart.Row(), + SC_FOLLOW_JUMP ); + pViewSh->SetCursor( rFirst.aStart.Col(), rFirst.aStart.Row() ); //! method of the view to select RangeList } @@ -922,7 +919,7 @@ uno::Any SAL_CALL ScTabViewObj::getSelection() break; case 1: { - const ScRange& rRange = *(aRangeList[ 0 ]); + const ScRange& rRange = aRangeList[ 0 ]; if (rRange.aStart == rRange.aEnd) pObj = new ScCellObj( pDocSh, rRange.aStart ); else @@ -1086,7 +1083,7 @@ void SAL_CALL ScTabViewObj::setActiveSheet( const uno::Reference<sheet::XSpreads const ScRangeList& rRanges = pRangesImp->GetRangeList(); if ( rRanges.size() == 1 ) { - SCTAB nNewTab = rRanges[ 0 ]->aStart.Tab(); + SCTAB nNewTab = rRanges[ 0 ].aStart.Tab(); if ( pViewSh->GetViewData().GetDocument()->HasTable(nNewTab) ) pViewSh->SetTabNo( nNewTab ); } diff --git a/sc/source/ui/vba/vbaapplication.cxx b/sc/source/ui/vba/vbaapplication.cxx index 58cc3e9451cf..978de7118fce 100644 --- a/sc/source/ui/vba/vbaapplication.cxx +++ b/sc/source/ui/vba/vbaapplication.cxx @@ -1127,11 +1127,11 @@ uno::Reference< excel::XRange > lclCreateVbaRange( ScRangeList aCellRanges; for( ListOfScRange::const_iterator aIt = rList.begin(), aEnd = rList.end(); aIt != aEnd; ++aIt ) - aCellRanges.Append( *aIt ); + aCellRanges.push_back( *aIt ); if( aCellRanges.size() == 1 ) { - uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pDocShell, *aCellRanges.front() ) ); + uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pDocShell, aCellRanges.front() ) ); return new ScVbaRange( excel::getUnoSheetModuleObj( xRange ), rxContext, xRange ); } if( aCellRanges.size() > 1 ) diff --git a/sc/source/ui/vba/vbaeventshelper.cxx b/sc/source/ui/vba/vbaeventshelper.cxx index 24ae774e4e92..400f6459fa3b 100644 --- a/sc/source/ui/vba/vbaeventshelper.cxx +++ b/sc/source/ui/vba/vbaeventshelper.cxx @@ -385,7 +385,7 @@ void SAL_CALL ScVbaEventListener::changesOccurred( const util::ChangesEvent& rEv { ScRange aRange; ScUnoConversion::FillScRange( aRange, xCellRangeAddressable->getRangeAddress() ); - aRangeList.Append( aRange ); + aRangeList.push_back( aRange ); } } } @@ -829,7 +829,7 @@ bool lclSelectionChanged( const ScRangeList& rLeft, const ScRangeList& rRight ) return !(bLeftEmpty && bRightEmpty); // check sheet indexes of the range lists (assuming that all ranges in a list are on the same sheet) - if (rLeft[0]->aStart.Tab() != rRight[0]->aStart.Tab()) + if (rLeft[0].aStart.Tab() != rRight[0].aStart.Tab()) return false; // compare all ranges diff --git a/sc/source/ui/vba/vbahyperlinks.cxx b/sc/source/ui/vba/vbahyperlinks.cxx index 148e774b3b17..7e46e38a1c6d 100644 --- a/sc/source/ui/vba/vbahyperlinks.cxx +++ b/sc/source/ui/vba/vbahyperlinks.cxx @@ -42,7 +42,7 @@ bool lclContains( const ScRangeList& rScOuter, const uno::Reference< excel::XRan throw uno::RuntimeException("Empty range objects" ); for( size_t nIndex = 0, nCount = rScInner.size(); nIndex < nCount; ++nIndex ) - if( !rScOuter.In( *rScInner[ nIndex ] ) ) + if( !rScOuter.In( rScInner[ nIndex ] ) ) return false; return true; } @@ -89,7 +89,7 @@ bool EqualAnchorFunctor::operator()( const uno::Reference< excel::XHyperlink >& uno::Reference< excel::XRange > xAnchorRange( rxHlink->getRange(), uno::UNO_QUERY_THROW ); const ScRangeList& rScRanges1 = ScVbaRange::getScRangeList( xAnchorRange ); const ScRangeList& rScRanges2 = ScVbaRange::getScRangeList( mxAnchorRange ); - return (rScRanges1.size() == 1) && (rScRanges2.size() == 1) && (*rScRanges1[ 0 ] == *rScRanges2[ 0 ]); + return (rScRanges1.size() == 1) && (rScRanges2.size() == 1) && (rScRanges1[ 0 ] == rScRanges2[ 0 ]); } case office::MsoHyperlinkType::msoHyperlinkShape: case office::MsoHyperlinkType::msoHyperlinkInlineShape: diff --git a/sc/source/ui/vba/vbanames.cxx b/sc/source/ui/vba/vbanames.cxx index 553d796a7c83..42b290c67df3 100644 --- a/sc/source/ui/vba/vbanames.cxx +++ b/sc/source/ui/vba/vbanames.cxx @@ -170,7 +170,7 @@ ScVbaNames::Add( const css::uno::Any& Name , if ( ScVbaRange::getCellRangesForAddress( nFlags, sFormula, pDocSh, aCellRanges, eConv , ',' ) ) { if ( aCellRanges.size() == 1 ) - xUnoRange = new ScCellRangeObj( pDocSh, *aCellRanges.front() ); + xUnoRange = new ScCellRangeObj( pDocSh, aCellRanges.front() ); else { uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( pDocSh, aCellRanges ) ); diff --git a/sc/source/ui/vba/vbapagesetup.cxx b/sc/source/ui/vba/vbapagesetup.cxx index dd4a0169ee64..a86c013d3ab8 100644 --- a/sc/source/ui/vba/vbapagesetup.cxx +++ b/sc/source/ui/vba/vbapagesetup.cxx @@ -78,7 +78,7 @@ OUString SAL_CALL ScVbaPageSetup::getPrintArea() { ScRange aRange; ScUnoConversion::FillScRange( aRange, aSeq[i] ); - aRangeList.Append( aRange ); + aRangeList.push_back( aRange ); } ScDocument& rDoc = excel::getDocShell( mxModel )->GetDocument(); aRangeList.Format( aPrintArea, ScRefFlags::RANGE_ABS, &rDoc, formula::FormulaGrammar::CONV_XL_A1, ',' ); @@ -106,9 +106,9 @@ void SAL_CALL ScVbaPageSetup::setPrintArea( const OUString& rAreas ) uno::Sequence< table::CellRangeAddress > aSeq( aCellRanges.size() ); for ( size_t i = 0, nRanges = aCellRanges.size(); i < nRanges; ++i ) { - ScRange* pRange = aCellRanges[ i ]; + ScRange & rRange = aCellRanges[ i ]; table::CellRangeAddress aRangeAddress; - ScUnoConversion::FillApiRange( aRangeAddress, *pRange ); + ScUnoConversion::FillApiRange( aRangeAddress, rRange ); aSeq[ i++ ] = aRangeAddress; } xPrintAreas->setPrintAreas( aSeq ); diff --git a/sc/source/ui/vba/vbarange.cxx b/sc/source/ui/vba/vbarange.cxx index f9577e461c74..00e3b6c47151 100644 --- a/sc/source/ui/vba/vbarange.cxx +++ b/sc/source/ui/vba/vbarange.cxx @@ -236,12 +236,12 @@ static uno::Reference< excel::XRange > lcl_makeXRangeFromSheetCellRanges( const { ScRange refRange; ScUnoConversion::FillScRange( refRange, sAddresses[ index ] ); - aCellRanges.Append( refRange ); + aCellRanges.push_back( refRange ); } // Single range if ( aCellRanges.size() == 1 ) { - uno::Reference< table::XCellRange > xTmpRange( new ScCellRangeObj( pDoc, *aCellRanges.front() ) ); + uno::Reference< table::XCellRange > xTmpRange( new ScCellRangeObj( pDoc, aCellRanges.front() ) ); xRange = new ScVbaRange( xParent, xContext, xTmpRange ); } else @@ -883,7 +883,7 @@ protected: if ( pUnoRangesBase ) { ScRangeList aCellRanges = pUnoRangesBase->GetRangeList(); - ScCompiler aCompiler( m_pDoc, aCellRanges.front()->aStart, m_eGrammar ); + ScCompiler aCompiler( m_pDoc, aCellRanges.front().aStart, m_eGrammar ); // compile the string in the format passed in std::unique_ptr<ScTokenArray> pArray(aCompiler.CompileString(sFormula)); // set desired convention to that of the document @@ -926,7 +926,7 @@ public: pUnoRangesBase ) { ScRangeList aCellRanges = pUnoRangesBase->GetRangeList(); - ScCompiler aCompiler( m_pDoc, aCellRanges.front()->aStart, formula::FormulaGrammar::GRAM_DEFAULT ); + ScCompiler aCompiler( m_pDoc, aCellRanges.front().aStart, formula::FormulaGrammar::GRAM_DEFAULT ); std::unique_ptr<ScTokenArray> pArray(aCompiler.CompileString(sVal)); // set desired convention aCompiler.SetGrammar( m_eGrammar ); @@ -1217,13 +1217,13 @@ bool getScRangeListForAddress( const OUString& sName, ScDocShell* pDocSh, const for ( size_t i = 0, nRanges = aCellRanges.size(); i < nRanges; ++i ) { - ScRange* pRange = aCellRanges[ i ]; - pRange->aStart.SetCol( refRange.aStart.Col() + pRange->aStart.Col() ); - pRange->aStart.SetRow( refRange.aStart.Row() + pRange->aStart.Row() ); - pRange->aStart.SetTab( bTabFromReferrer ? refRange.aStart.Tab() : pRange->aStart.Tab() ); - pRange->aEnd.SetCol( refRange.aStart.Col() + pRange->aEnd.Col() ); - pRange->aEnd.SetRow( refRange.aStart.Row() + pRange->aEnd.Row() ); - pRange->aEnd.SetTab( bTabFromReferrer ? refRange.aEnd.Tab() : pRange->aEnd.Tab() ); + ScRange & rRange = aCellRanges[ i ]; + rRange.aStart.SetCol( refRange.aStart.Col() + rRange.aStart.Col() ); + rRange.aStart.SetRow( refRange.aStart.Row() + rRange.aStart.Row() ); + rRange.aStart.SetTab( bTabFromReferrer ? refRange.aStart.Tab() : rRange.aStart.Tab() ); + rRange.aEnd.SetCol( refRange.aStart.Col() + rRange.aEnd.Col() ); + rRange.aEnd.SetRow( refRange.aStart.Row() + rRange.aEnd.Row() ); + rRange.aEnd.SetTab( bTabFromReferrer ? refRange.aEnd.Tab() : rRange.aEnd.Tab() ); } } return true; @@ -1241,7 +1241,7 @@ getRangeForName( const uno::Reference< uno::XComponentContext >& xContext, const // Single range if ( aCellRanges.size() == 1 ) { - uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pDocSh, *aCellRanges.front() ) ); + uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pDocSh, aCellRanges.front() ) ); uno::Reference< XHelperInterface > xFixThisParent = excel::getUnoSheetModuleObj( xRange ); return new ScVbaRange( xFixThisParent, xContext, xRange ); } @@ -1305,7 +1305,7 @@ uno::Reference< sheet::XSheetCellRangeContainer > lclExpandToMerged( const uno:: table::CellRangeAddress aRangeAddr = lclGetRangeAddress( lclExpandToMerged( xRange, bRecursive ) ); ScRange aScRange; ScUnoConversion::FillScRange( aScRange, aRangeAddr ); - aScRanges.Append( aScRange ); + aScRanges.push_back( aScRange ); } return new ScCellRangesObj( getDocShellFromRanges( rxCellRanges ), aScRanges ); } @@ -1387,7 +1387,7 @@ table::CellRangeAddress getCellRangeAddressForVBARange( const uno::Any& aParam, if ( aCellRanges.size() == 1 ) { table::CellRangeAddress aRangeAddress; - ScUnoConversion::FillApiRange( aRangeAddress, *aCellRanges.front() ); + ScUnoConversion::FillApiRange( aRangeAddress, aCellRanges.front() ); return aRangeAddress; } } @@ -1786,8 +1786,8 @@ ScVbaRange::HasFormula() // check if there are holes (where some cells are not formulas) // or returned range is not equal to this range if ( ( pFormulaRanges->GetRangeList().size() > 1 ) - || ( pFormulaRanges->GetRangeList().front()->aStart != pThisRanges->GetRangeList().front()->aStart ) - || ( pFormulaRanges->GetRangeList().front()->aEnd != pThisRanges->GetRangeList().front()->aEnd ) + || ( pFormulaRanges->GetRangeList().front().aStart != pThisRanges->GetRangeList().front().aStart ) + || ( pFormulaRanges->GetRangeList().front().aEnd != pThisRanges->GetRangeList().front().aEnd ) ) return aNULL(); // should return aNULL; } @@ -1872,16 +1872,16 @@ ScVbaRange::Offset( const ::uno::Any &nRowOff, const uno::Any &nColOff ) for ( size_t i = 0, nRanges = aCellRanges.size(); i < nRanges; ++i ) { - ScRange* pRange = aCellRanges[ i ]; + ScRange & rRange = aCellRanges[ i ]; if ( bIsColumnOffset ) { - pRange->aStart.SetCol( pRange->aStart.Col() + nColOffset ); - pRange->aEnd.SetCol( pRange->aEnd.Col() + nColOffset ); + rRange.aStart.SetCol( rRange.aStart.Col() + nColOffset ); + rRange.aEnd.SetCol( rRange.aEnd.Col() + nColOffset ); } if ( bIsRowOffset ) { - pRange->aStart.SetRow( pRange->aStart.Row() + nRowOffset ); - pRange->aEnd.SetRow( pRange->aEnd.Row() + nRowOffset ); + rRange.aStart.SetRow( rRange.aStart.Row() + nRowOffset ); + rRange.aEnd.SetRow( rRange.aEnd.Row() + nRowOffset ); } } @@ -1891,7 +1891,7 @@ ScVbaRange::Offset( const ::uno::Any &nRowOff, const uno::Any &nColOff ) return new ScVbaRange( mxParent, mxContext, xRanges ); } // normal range - uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), *aCellRanges.front() ) ); + uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), aCellRanges.front() ) ); return new ScVbaRange( mxParent, mxContext, xRange ); } @@ -2007,7 +2007,7 @@ ScVbaRange::setFormulaArray(const uno::Any& rFormula) ScTokenArray aTokenArray; (void)ScTokenConversion::ConvertToTokenArray( getScDocument(), aTokenArray, aTokens ); - getScDocShell()->GetDocFunc().EnterMatrix( *getScRangeList()[0], nullptr, &aTokenArray, OUString(), true, true, EMPTY_OUSTRING, formula::FormulaGrammar::GRAM_API ); + getScDocShell()->GetDocFunc().EnterMatrix( getScRangeList()[0], nullptr, &aTokenArray, OUString(), true, true, EMPTY_OUSTRING, formula::FormulaGrammar::GRAM_API ); } OUString @@ -2352,7 +2352,7 @@ ScVbaRange::Rows(const uno::Any& aIndex ) ScCellRangesBase* pUnoRangesBase = getCellRangesBase(); ScRangeList aCellRanges = pUnoRangesBase->GetRangeList(); - ScRange aRange = *aCellRanges.front(); + ScRange aRange = aCellRanges.front(); if( aIndex >>= nValue ) { aRange.aStart.SetRow( aRange.aStart.Row() + --nValue ); @@ -2392,7 +2392,7 @@ ScVbaRange::Columns(const uno::Any& aIndex ) ScCellRangesBase* pUnoRangesBase = getCellRangesBase(); ScRangeList aCellRanges = pUnoRangesBase->GetRangeList(); - ScRange aRange = *aCellRanges.front(); + ScRange aRange = aCellRanges.front(); if ( aIndex.hasValue() ) { sal_Int32 nValue = 0; @@ -2882,16 +2882,16 @@ ScVbaRange::getEntireColumnOrRow( bool bColumn ) for ( size_t i = 0, nRanges = aCellRanges.size(); i < nRanges; ++i ) { - ScRange* pRange = aCellRanges[ i ]; + ScRange & rRange = aCellRanges[ i ]; if ( bColumn ) { - pRange->aStart.SetRow( 0 ); - pRange->aEnd.SetRow( MAXROW ); + rRange.aStart.SetRow( 0 ); + rRange.aEnd.SetRow( MAXROW ); } else { - pRange->aStart.SetCol( 0 ); - pRange->aEnd.SetCol( MAXCOL ); + rRange.aStart.SetCol( 0 ); + rRange.aEnd.SetCol( MAXCOL ); } } if ( aCellRanges.size() > 1 ) // Multi-Area @@ -2900,7 +2900,7 @@ ScVbaRange::getEntireColumnOrRow( bool bColumn ) return new ScVbaRange( mxParent, mxContext, xRanges, !bColumn, bColumn ); } - uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), *aCellRanges.front() ) ); + uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( pUnoRangesBase->GetDocShell(), aCellRanges.front() ) ); return new ScVbaRange( mxParent, mxContext, xRange, !bColumn, bColumn ); } @@ -5416,12 +5416,12 @@ ScVbaRange::SpecialCells( const uno::Any& _oType, const uno::Any& _oValue) { ScRange refRange; ScUnoConversion::FillScRange( refRange, *it ); - aCellRanges.Append( refRange ); + aCellRanges.push_back( refRange ); } // Single range if ( aCellRanges.size() == 1 ) { - uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( getScDocShell(), *aCellRanges.front() ) ); + uno::Reference< table::XCellRange > xRange( new ScCellRangeObj( getScDocShell(), aCellRanges.front() ) ); return new ScVbaRange( mxParent, mxContext, xRange ); } uno::Reference< sheet::XSheetCellRangeContainer > xRanges( new ScCellRangesObj( getScDocShell(), aCellRanges ) ); diff --git a/sc/source/ui/view/cellsh.cxx b/sc/source/ui/view/cellsh.cxx index 0608924fcdde..daf883084096 100644 --- a/sc/source/ui/view/cellsh.cxx +++ b/sc/source/ui/view/cellsh.cxx @@ -1109,7 +1109,7 @@ void ScCellShell::GetState(SfxItemSet &rSet) if (pDoc->HasTabNotes( rTab )) { bHasNotes = true; - aRanges.Append(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab)); + aRanges.push_back(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab)); } } diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx index e92e560d99d2..93779d60752b 100644 --- a/sc/source/ui/view/cellsh1.cxx +++ b/sc/source/ui/view/cellsh1.cxx @@ -1978,8 +1978,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) ScAddress aPos(pData->GetCurX(), pData->GetCurY(), pData->GetTabNo()); if(aRangeList.empty()) { - ScRange* pRange = new ScRange(aPos); - aRangeList.push_back(pRange); + aRangeList.push_back(ScRange(aPos)); } const ScConditionalFormat* pCondFormat = nullptr; @@ -2290,12 +2289,12 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) for ( size_t i = 0; i < nRangeSize; ++i ) { - const ScRange * pRange = aRanges[i]; - const SCROW nRow0 = pRange->aStart.Row(); - const SCROW nRow1 = pRange->aEnd.Row(); - const SCCOL nCol0 = pRange->aStart.Col(); - const SCCOL nCol1 = pRange->aEnd.Col(); - const SCTAB nRangeTab = pRange->aStart.Tab(); + const ScRange & rRange = aRanges[i]; + const SCROW nRow0 = rRange.aStart.Row(); + const SCROW nRow1 = rRange.aEnd.Row(); + const SCCOL nCol0 = rRange.aStart.Col(); + const SCCOL nCol1 = rRange.aEnd.Col(); + const SCTAB nRangeTab = rRange.aStart.Tab(); // Check by each cell for ( SCROW nRow = nRow0; nRow <= nRow1; ++nRow ) { @@ -2362,7 +2361,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) std::vector<sc::NoteEntry> aNotes; for (auto const& rTab : rMark.GetSelectedTabs()) - aRanges.Append(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab)); + aRanges.push_back(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab)); CommentCaptionState eState = pDoc->GetAllNoteCaptionsState( aRanges ); pDoc->GetNotesInRange(aRanges, aNotes); @@ -2416,7 +2415,7 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq ) for (auto const& rTab : rMark.GetSelectedTabs()) { - aRangeList.Append(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab)); + aRangeList.push_back(ScRange(0,0,rTab,MAXCOL,MAXROW,rTab)); } aNewMark.MarkFromRangeList( aRangeList, true ); diff --git a/sc/source/ui/view/cliputil.cxx b/sc/source/ui/view/cliputil.cxx index 4eead7dee2f3..f3cd331e94e3 100644 --- a/sc/source/ui/view/cliputil.cxx +++ b/sc/source/ui/view/cliputil.cxx @@ -100,7 +100,7 @@ bool ScClipUtil::CheckDestRanges( { for (size_t i = 0, n = rDest.size(); i < n; ++i) { - ScRange aTest = *rDest[i]; + ScRange aTest = rDest[i]; // Check for filtered rows in all selected sheets. ScMarkData::const_iterator itrTab = rMark.begin(), itrTabEnd = rMark.end(); for (; itrTab != itrTabEnd; ++itrTab) diff --git a/sc/source/ui/view/dbfunc3.cxx b/sc/source/ui/view/dbfunc3.cxx index dd81e409baca..38b6d6a54fb0 100644 --- a/sc/source/ui/view/dbfunc3.cxx +++ b/sc/source/ui/view/dbfunc3.cxx @@ -713,12 +713,12 @@ void ScDBFunc::GetSelectedMemberList(ScDPUniqueStringSet& rEntries, long& rDimen for (size_t nRangePos=0; nRangePos < nRangeCount && bContinue; nRangePos++) { - ScRange aRange = *(*xRanges)[nRangePos]; - SCCOL nStartCol = aRange.aStart.Col(); - SCROW nStartRow = aRange.aStart.Row(); - SCCOL nEndCol = aRange.aEnd.Col(); - SCROW nEndRow = aRange.aEnd.Row(); - SCTAB nTab = aRange.aStart.Tab(); + ScRange const & rRange = (*xRanges)[nRangePos]; + SCCOL nStartCol = rRange.aStart.Col(); + SCROW nStartRow = rRange.aStart.Row(); + SCCOL nEndCol = rRange.aEnd.Col(); + SCROW nEndRow = rRange.aEnd.Row(); + SCTAB nTab = rRange.aStart.Tab(); for (SCROW nRow=nStartRow; nRow<=nEndRow && bContinue; nRow++) for (SCCOL nCol=nStartCol; nCol<=nEndCol && bContinue; nCol++) diff --git a/sc/source/ui/view/drawvie4.cxx b/sc/source/ui/view/drawvie4.cxx index bee41f56eee0..2571d95f6bfe 100644 --- a/sc/source/ui/view/drawvie4.cxx +++ b/sc/source/ui/view/drawvie4.cxx @@ -258,7 +258,7 @@ void getOleSourceRanges(const SdrMarkList& rMarkList, bool& rAnyOle, bool& rOneO if (aRange.Parse(*it, pDoc, pDoc->GetAddressConvention()) & ScRefFlags::VALID) { for(size_t i = 0; i < aRange.size(); ++i) - pRanges->push_back(*aRange[i]); + pRanges->push_back(aRange[i]); } else if (aAddr.Parse(*it, pDoc, pDoc->GetAddressConvention()) & ScRefFlags::VALID) pRanges->push_back(aAddr); diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx index 4795290aa909..edca231aee27 100644 --- a/sc/source/ui/view/gridwin.cxx +++ b/sc/source/ui/view/gridwin.cxx @@ -5270,7 +5270,7 @@ bool ScGridWindow::HasScenarioButton( const Point& rPosPixel, ScRange& rScenRang size_t nRangeCount = aRanges.size(); for (size_t j=0; j< nRangeCount; ++j) { - ScRange aRange = *aRanges[j]; + ScRange aRange = aRanges[j]; // Always extend scenario frame to merged cells where no new non-covered cells // are framed pDoc->ExtendTotalMerge( aRange ); @@ -5704,14 +5704,14 @@ void ScGridWindow::UpdateCopySourceOverlay() mpOOSelectionBorder.reset(new sdr::overlay::OverlayObjectList); for ( size_t i = 0; i < rClipParam.maRanges.size(); ++i ) { - ScRange* p = rClipParam.maRanges[i]; - if (p->aStart.Tab() != nCurTab) + ScRange const & r = rClipParam.maRanges[i]; + if (r.aStart.Tab() != nCurTab) continue; - SCCOL nClipStartX = p->aStart.Col(); - SCROW nClipStartY = p->aStart.Row(); - SCCOL nClipEndX = p->aEnd.Col(); - SCROW nClipEndY = p->aEnd.Row(); + SCCOL nClipStartX = r.aStart.Col(); + SCROW nClipStartY = r.aStart.Row(); + SCCOL nClipEndX = r.aEnd.Col(); + SCROW nClipEndY = r.aEnd.Row(); Point aClipStartScrPos = pViewData->GetScrPos( nClipStartX, nClipStartY, eWhich ); Point aClipEndScrPos = pViewData->GetScrPos( nClipEndX + 1, nClipEndY + 1, eWhich ); diff --git a/sc/source/ui/view/gridwin4.cxx b/sc/source/ui/view/gridwin4.cxx index 81f9bf233f01..cd20ed0c493f 100644 --- a/sc/source/ui/view/gridwin4.cxx +++ b/sc/source/ui/view/gridwin4.cxx @@ -206,7 +206,7 @@ static void lcl_DrawScenarioFrames( OutputDevice* pDev, ScViewData* pViewData, S for (size_t j = 0, n = xRanges->size(); j < n; ++j) { - ScRange aRange = *(*xRanges)[j]; + ScRange aRange = (*xRanges)[j]; // Always extend scenario frame to merged cells where no new non-covered cells // are framed pDoc->ExtendTotalMerge( aRange ); diff --git a/sc/source/ui/view/gridwin_dbgutil.cxx b/sc/source/ui/view/gridwin_dbgutil.cxx index e6cd83a73a84..f4ff902cf9ac 100644 --- a/sc/source/ui/view/gridwin_dbgutil.cxx +++ b/sc/source/ui/view/gridwin_dbgutil.cxx @@ -100,13 +100,11 @@ void ScGridWindow::dumpCellProperties() for (size_t i = 0, n = aList.size(); i < n; ++i) { - ScRange* pRange = aList[i]; - if (!pRange) - continue; + ScRange const & rRange = aList[i]; - for (SCCOL nCol = pRange->aStart.Col(); nCol <= pRange->aEnd.Col(); ++nCol) + for (SCCOL nCol = rRange.aStart.Col(); nCol <= rRange.aEnd.Col(); ++nCol) { - for (SCROW nRow = pRange->aStart.Row(); nRow <= pRange->aEnd.Row(); ++nRow) + for (SCROW nRow = rRange.aStart.Row(); nRow <= rRange.aEnd.Row(); ++nRow) { const ScPatternAttr* pPatternAttr = pDoc->GetPattern(nCol, nRow, nTab); xmlTextWriterStartElement(writer, BAD_CAST("cell")); diff --git a/sc/source/ui/view/tabview3.cxx b/sc/source/ui/view/tabview3.cxx index a789e66086b8..41bd76e976ad 100644 --- a/sc/source/ui/view/tabview3.cxx +++ b/sc/source/ui/view/tabview3.cxx @@ -2488,11 +2488,11 @@ void ScTabView::DoChartSelection( size_t nListSize = aRangeList.size(); for ( size_t j = 0; j < nListSize; ++j ) { - ScRange* p = aRangeList[j]; + ScRange const & r = aRangeList[j]; if( rHighlightedRange.Index == - 1 ) - AddHighlightRange( *p, aSelColor ); + AddHighlightRange( r, aSelColor ); else - AddHighlightRange( lcl_getSubRangeByIndex( *p, rHighlightedRange.Index ), aSelColor ); + AddHighlightRange( lcl_getSubRangeByIndex( r, rHighlightedRange.Index ), aSelColor ); } } } diff --git a/sc/source/ui/view/tabvwshc.cxx b/sc/source/ui/view/tabvwshc.cxx index f7503752280d..46fe3f1629c2 100644 --- a/sc/source/ui/view/tabvwshc.cxx +++ b/sc/source/ui/view/tabvwshc.cxx @@ -614,24 +614,21 @@ bool ScTabViewShell::UseSubTotal(ScRangeList* pRangeList) size_t nRangeIndex (0); while (!bSubTotal && nRangeIndex < nRangeCount) { - const ScRange* pRange = (*pRangeList)[nRangeIndex]; - if( pRange ) - { - SCTAB nTabEnd(pRange->aEnd.Tab()); - SCTAB nTab(pRange->aStart.Tab()); - while (!bSubTotal && nTab <= nTabEnd) + const ScRange& rRange = (*pRangeList)[nRangeIndex]; + SCTAB nTabEnd(rRange.aEnd.Tab()); + SCTAB nTab(rRange.aStart.Tab()); + while (!bSubTotal && nTab <= nTabEnd) + { + SCROW nRowEnd(rRange.aEnd.Row()); + SCROW nRow(rRange.aStart.Row()); + while (!bSubTotal && nRow <= nRowEnd) { - SCROW nRowEnd(pRange->aEnd.Row()); - SCROW nRow(pRange->aStart.Row()); - while (!bSubTotal && nRow <= nRowEnd) - { - if (pDoc->RowFiltered(nRow, nTab)) - bSubTotal = true; - else - ++nRow; - } - ++nTab; + if (pDoc->RowFiltered(nRow, nTab)) + bSubTotal = true; + else + ++nRow; } + ++nTab; } ++nRangeIndex; } @@ -647,14 +644,11 @@ bool ScTabViewShell::UseSubTotal(ScRangeList* pRangeList) nRangeIndex = 0; while (!bSubTotal && nRangeIndex < nRangeCount) { - const ScRange* pRange = (*pRangeList)[nRangeIndex]; - if( pRange ) - { - ScRange aDBArea; - rDB.GetArea(aDBArea); - if (aDBArea.Intersects(*pRange)) - bSubTotal = true; - } + const ScRange & rRange = (*pRangeList)[nRangeIndex]; + ScRange aDBArea; + rDB.GetArea(aDBArea); + if (aDBArea.Intersects(rRange)) + bSubTotal = true; ++nRangeIndex; } } @@ -677,10 +671,10 @@ const OUString ScTabViewShell::DoAutoSum(bool& rRangeFinder, bool& rSubTotal) const size_t nCount = aMarkRangeList.size(); for ( size_t i = 0; i < nCount; ++i ) { - const ScRange aRange( *aMarkRangeList[i] ); - if ( pDoc->IsBlockEmpty( aRange.aStart.Tab(), - aRange.aStart.Col(), aRange.aStart.Row(), - aRange.aEnd.Col(), aRange.aEnd.Row() ) ) + const ScRange & rRange( aMarkRangeList[i] ); + if ( pDoc->IsBlockEmpty( rRange.aStart.Tab(), + rRange.aStart.Col(), rRange.aStart.Row(), + rRange.aEnd.Col(), rRange.aEnd.Row() ) ) { bEmpty = true; break; @@ -693,7 +687,7 @@ const OUString ScTabViewShell::DoAutoSum(bool& rRangeFinder, bool& rSubTotal) const bool bDataFound = GetAutoSumArea( aRangeList ); if ( bDataFound ) { - ScAddress aAddr = aRangeList.back()->aEnd; + ScAddress aAddr = aRangeList.back().aEnd; aAddr.IncRow(); const bool bSubTotal( UseSubTotal( &aRangeList ) ); EnterAutoSum( aRangeList, bSubTotal, aAddr ); @@ -704,15 +698,15 @@ const OUString ScTabViewShell::DoAutoSum(bool& rRangeFinder, bool& rSubTotal) const bool bSubTotal( UseSubTotal( &aMarkRangeList ) ); for ( size_t i = 0; i < nCount; ++i ) { - const ScRange aRange( *aMarkRangeList[i] ); + const ScRange & rRange = aMarkRangeList[i]; const bool bSetCursor = ( i == nCount - 1 ); const bool bContinue = ( i != 0 ); - if ( !AutoSum( aRange, bSubTotal, bSetCursor, bContinue ) ) + if ( !AutoSum( rRange, bSubTotal, bSetCursor, bContinue ) ) { - MarkRange( aRange, false ); - SetCursor( aRange.aEnd.Col(), aRange.aEnd.Row() ); + MarkRange( rRange, false ); + SetCursor( rRange.aEnd.Col(), rRange.aEnd.Row() ); const ScRangeList aRangeList; - ScAddress aAddr = aRange.aEnd; + ScAddress aAddr = rRange.aEnd; aAddr.IncRow(); aFormula = GetAutoSumFormula( aRangeList, bSubTotal, aAddr ); break; diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index 1b7bdb769d87..89845c071971 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -1188,8 +1188,7 @@ void ScViewData::GetMultiArea( ScRangeListRef& rRange ) const { ScRange aSimple; GetSimpleArea(aSimple); - rRange = new ScRangeList; - rRange->Append(aSimple); + rRange = new ScRangeList(aSimple); } } diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx index 2727e0b7f733..e572964ec1b8 100644 --- a/sc/source/ui/view/viewfun2.cxx +++ b/sc/source/ui/view/viewfun2.cxx @@ -330,7 +330,7 @@ static ScAutoSum lcl_GetAutoSumForColumnRange( ScDocument* pDoc, ScRangeList& rR bool bContinue = false; do { - rRangeList.Append( ScRange( nCol, nStartRow, nTab, nCol, nEndRow, nTab ) ); + rRangeList.push_back( ScRange( nCol, nStartRow, nTab, nCol, nEndRow, nTab ) ); nEndRow = static_cast< SCROW >( nExtend ); bContinue = lcl_FindNextSumEntryInColumn( pDoc, nCol, nEndRow /*inout*/, nTab, nExtend /*out*/, aStart.Row() ); if ( bContinue ) @@ -346,7 +346,7 @@ static ScAutoSum lcl_GetAutoSumForColumnRange( ScDocument* pDoc, ScRangeList& rR { --nStartRow; } - rRangeList.Append( ScRange( nCol, nStartRow, nTab, nCol, nEndRow, nTab ) ); + rRangeList.push_back( ScRange( nCol, nStartRow, nTab, nCol, nEndRow, nTab ) ); if (eSum == ScAutoSumNone) eSum = ScAutoSumData; } @@ -375,7 +375,7 @@ static ScAutoSum lcl_GetAutoSumForRowRange( ScDocument* pDoc, ScRangeList& rRang bool bContinue = false; do { - rRangeList.Append( ScRange( nStartCol, nRow, nTab, nEndCol, nRow, nTab ) ); + rRangeList.push_back( ScRange( nStartCol, nRow, nTab, nEndCol, nRow, nTab ) ); nEndCol = static_cast< SCCOL >( nExtend ); bContinue = lcl_FindNextSumEntryInRow( pDoc, nEndCol /*inout*/, nRow, nTab, nExtend /*out*/, aStart.Col() ); if ( bContinue ) @@ -391,7 +391,7 @@ static ScAutoSum lcl_GetAutoSumForRowRange( ScDocument* pDoc, ScRangeList& rRang { --nStartCol; } - rRangeList.Append( ScRange( nStartCol, nRow, nTab, nEndCol, nRow, nTab ) ); + rRangeList.push_back( ScRange( nStartCol, nRow, nTab, nEndCol, nRow, nTab ) ); if (eSum == ScAutoSumNone) eSum = ScAutoSumData; } @@ -476,7 +476,7 @@ bool ScViewFunc::GetAutoSumArea( ScRangeList& rRangeList ) --nStartCol; } } - rRangeList.Append( + rRangeList.push_back( ScRange( nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab ) ); if ( eSum == ScAutoSumSum ) { @@ -665,7 +665,7 @@ bool ScViewFunc::AutoSum( const ScRange& rRange, bool bSubTotal, bool bSetCursor if ( (eSum = lcl_GetAutoSumForColumnRange( pDoc, aRangeList, aRange )) != ScAutoSumNone ) { if (++nRowSums == 1) - nRowSumsStartCol = aRangeList[0]->aStart.Col(); + nRowSumsStartCol = aRangeList[0].aStart.Col(); const OUString aFormula = GetAutoSumFormula( aRangeList, bSubTotal, ScAddress(nCol, nInsRow, nTab)); EnterData( nCol, nInsRow, nTab, aFormula ); @@ -702,7 +702,7 @@ bool ScViewFunc::AutoSum( const ScRange& rRange, bool bSubTotal, bool bSetCursor if ( (eSum = lcl_GetAutoSumForRowRange( pDoc, aRangeList, aRange )) != ScAutoSumNone ) { if (++nColSums == 1) - nColSumsStartRow = aRangeList[0]->aStart.Row(); + nColSumsStartRow = aRangeList[0].aStart.Row(); const OUString aFormula = GetAutoSumFormula( aRangeList, bSubTotal, ScAddress(nInsCol, nRow, nTab) ); EnterData( nInsCol, nRow, nTab, aFormula ); } @@ -749,15 +749,14 @@ OUString ScViewFunc::GetAutoSumFormula( const ScRangeList& rRangeList, bool bSub if(!rRangeList.empty()) { ScRangeList aRangeList = rRangeList; - const ScRange* pFirst = aRangeList.front(); size_t ListSize = aRangeList.size(); - for ( size_t i = 0; i < ListSize; ++i ) + for ( size_t i = 1; i < ListSize; ++i ) { - const ScRange* p = aRangeList[i]; - if (p != pFirst) + const ScRange & r = aRangeList[i]; + if (i != 0) pArray->AddOpCode(ocSep); ScComplexRefData aRef; - aRef.InitRangeRel(*p, rAddr); + aRef.InitRangeRel(r, rAddr); pArray->AddDoubleReference(aRef); } } @@ -996,8 +995,8 @@ void ScViewFunc::SetPrintRanges( bool bEntireSheet, const OUString* pPrint, rMark.FillRangeListWithMarks( pList.get(), false ); for (size_t i = 0, n = pList->size(); i < n; ++i) { - ScRange* pR = (*pList)[i]; - rDoc.AddPrintRange(nTab, *pR); + const ScRange & rR = (*pList)[i]; + rDoc.AddPrintRange(nTab, rR); } } } @@ -1391,7 +1390,7 @@ void ScViewFunc::FillAuto( FillDir eDir, SCCOL nStartCol, SCROW nStartRow, default: break; } - aChangeRanges.Append( aChangeRange ); + aChangeRanges.push_back( aChangeRange ); HelperNotifyChanges::Notify(*pModelObj, aChangeRanges); } } @@ -1863,7 +1862,7 @@ bool ScViewFunc::SearchAndReplace( const SvxSearchItem* pSearchItem, rMark.ResetMark(); for (size_t i = 0, n = aMatchedRanges.size(); i < n; ++i) { - const ScRange& r = *aMatchedRanges[i]; + const ScRange& r = aMatchedRanges[i]; if (r.aStart.Tab() == nTab) rMark.SetMultiMarkArea(r); } @@ -2762,7 +2761,7 @@ void ScViewFunc::MoveTable( break; // for } ScRange aRange( 0, 0, TheTabs[j], MAXCOL, MAXROW, TheTabs[j] ); - aParam.maRanges.Append(aRange); + aParam.maRanges.push_back(aRange); } pDoc->SetClipParam(aParam); if ( nErrVal > 0 ) diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx index 3afb0f466a32..7d6efcf45b3d 100644 --- a/sc/source/ui/view/viewfun3.cxx +++ b/sc/source/ui/view/viewfun3.cxx @@ -161,8 +161,7 @@ bool ScViewFunc::CopyToClip( ScDocument* pClipDoc, bool bCut, bool bApi, bool bI if ( eMarkType == SC_MARK_SIMPLE || eMarkType == SC_MARK_SIMPLE_FILTERED ) { - ScRangeList aRangeList; - aRangeList.Append( aRange ); + ScRangeList aRangeList( aRange ); bDone = CopyToClip( pClipDoc, aRangeList, bCut, bApi, bIncludeObjects, bStopEdit ); } else if (eMarkType == SC_MARK_MULTI) @@ -190,7 +189,7 @@ bool ScViewFunc::CopyToClip( ScDocument* pClipDoc, const ScRangeList& rRanges, b if ( bStopEdit ) UpdateInputLine(); - ScRange aRange = *rRanges[0]; + ScRange aRange = rRanges[0]; ScClipParam aClipParam( aRange, bCut ); aClipParam.maRanges = rRanges; @@ -304,26 +303,26 @@ bool ScViewFunc::CopyToClip( ScDocument* pClipDoc, const ScRangeList& rRanges, b // Check for geometrical feasibility of the ranges. bool bValidRanges = true; - ScRange* p = aClipParam.maRanges.front(); + ScRange & r = aClipParam.maRanges.front(); SCCOL nPrevColDelta = 0; SCROW nPrevRowDelta = 0; - SCCOL nPrevCol = p->aStart.Col(); - SCROW nPrevRow = p->aStart.Row(); - SCCOL nPrevColSize = p->aEnd.Col() - p->aStart.Col() + 1; - SCROW nPrevRowSize = p->aEnd.Row() - p->aStart.Row() + 1; + SCCOL nPrevCol = r.aStart.Col(); + SCROW nPrevRow = r.aStart.Row(); + SCCOL nPrevColSize = r.aEnd.Col() - r.aStart.Col() + 1; + SCROW nPrevRowSize = r.aEnd.Row() - r.aStart.Row() + 1; for ( size_t i = 1; i < aClipParam.maRanges.size(); ++i ) { - p = aClipParam.maRanges[i]; + r = aClipParam.maRanges[i]; if ( pDoc->HasSelectedBlockMatrixFragment( - p->aStart.Col(), p->aStart.Row(), p->aEnd.Col(), p->aEnd.Row(), rMark) ) + r.aStart.Col(), r.aStart.Row(), r.aEnd.Col(), r.aEnd.Row(), rMark) ) { if (!bApi) ErrorMessage(STR_MATRIXFRAGMENTERR); return false; } - SCCOL nColDelta = p->aStart.Col() - nPrevCol; - SCROW nRowDelta = p->aStart.Row() - nPrevRow; + SCCOL nColDelta = r.aStart.Col() - nPrevCol; + SCROW nRowDelta = r.aStart.Row() - nPrevRow; if ((nColDelta && nRowDelta) || (nPrevColDelta && nRowDelta) || (nPrevRowDelta && nColDelta)) { @@ -339,8 +338,8 @@ bool ScViewFunc::CopyToClip( ScDocument* pClipDoc, const ScRangeList& rRanges, b aClipParam.meDirection = ScClipParam::Row; } - SCCOL nColSize = p->aEnd.Col() - p->aStart.Col() + 1; - SCROW nRowSize = p->aEnd.Row() - p->aStart.Row() + 1; + SCCOL nColSize = r.aEnd.Col() - r.aStart.Col() + 1; + SCROW nRowSize = r.aEnd.Row() - r.aStart.Row() + 1; if (aClipParam.meDirection == ScClipParam::Column && nRowSize != nPrevRowSize) { @@ -356,8 +355,8 @@ bool ScViewFunc::CopyToClip( ScDocument* pClipDoc, const ScRangeList& rRanges, b break; } - nPrevCol = p->aStart.Col(); - nPrevRow = p->aStart.Row(); + nPrevCol = r.aStart.Col(); + nPrevRow = r.aStart.Row(); nPrevColDelta = nColDelta; nPrevRowDelta = nRowDelta; nPrevColSize = nColSize; @@ -831,7 +830,7 @@ bool checkDestRangeForOverwrite(const ScRangeList& rDestRanges, const ScDocument { for (size_t i = 0; i < nRangeSize && bIsEmpty; ++i) { - const ScRange& rRange = *rDestRanges[i]; + const ScRange& rRange = rDestRanges[i]; bIsEmpty = pDoc->IsBlockEmpty( *itrTab, rRange.aStart.Col(), rRange.aStart.Row(), rRange.aEnd.Col(), rRange.aEnd.Row()); @@ -1018,8 +1017,8 @@ bool ScViewFunc::PasteFromClip( InsertDeleteFlags nFlags, ScDocument* pClipDoc, size_t ListSize = aRangeList.size(); for ( size_t i = 0; i < ListSize; ++i ) { - ScRange* p = aRangeList[i]; - nUnfilteredRows += p->aEnd.Row() - p->aStart.Row() + 1; + ScRange & r = aRangeList[i]; + nUnfilteredRows += r.aEnd.Row() - r.aStart.Row() + 1; } #if 0 /* This isn't needed but could be a desired restriction. */ @@ -1141,8 +1140,7 @@ bool ScViewFunc::PasteFromClip( InsertDeleteFlags nFlags, ScDocument* pClipDoc, SC_MOD()->GetInputOptions().GetReplaceCellsWarn(); if ( bAskIfNotEmpty ) { - ScRangeList aTestRanges; - aTestRanges.Append(aUserRange); + ScRangeList aTestRanges(aUserRange); vcl::Window* pWin = GetViewData().GetDialogParent(); if (!checkDestRangeForOverwrite(aTestRanges, pDoc, aFilteredMark, pWin ? pWin->GetFrameWeld() : nullptr)) return false; @@ -1510,8 +1508,7 @@ bool ScViewFunc::PasteMultiRangesFromClip( if (bAskIfNotEmpty) { - ScRangeList aTestRanges; - aTestRanges.Append(aMarkedRange); + ScRangeList aTestRanges(aMarkedRange); vcl::Window* pWin = GetViewData().GetDialogParent(); if (!checkDestRangeForOverwrite(aTestRanges, pDoc, aMark, pWin ? pWin->GetFrameWeld() : nullptr)) return false; @@ -1688,7 +1685,7 @@ bool ScViewFunc::PasteFromClipToMultiRanges( for (size_t i = 0, n = aRanges.size(); i < n; ++i) { pDoc->CopyToDocument( - *aRanges[i], nUndoFlags, false, *pUndoDoc, &aMark); + aRanges[i], nUndoFlags, false, *pUndoDoc, &aMark); } } @@ -1702,7 +1699,7 @@ bool ScViewFunc::PasteFromClipToMultiRanges( for (size_t i = 0, n = aRanges.size(); i < n; ++i) { pDoc->CopyToDocument( - *aRanges[i], InsertDeleteFlags::CONTENTS, false, *pMixDoc, &aMark); + aRanges[i], InsertDeleteFlags::CONTENTS, false, *pMixDoc, &aMark); } } } @@ -1716,14 +1713,14 @@ bool ScViewFunc::PasteFromClipToMultiRanges( for (size_t i = 0, n = aRanges.size(); i < n; ++i) { pDoc->CopyFromClip( - *aRanges[i], aMark, (nFlags & ~InsertDeleteFlags::OBJECTS), nullptr, pClipDoc, + aRanges[i], aMark, (nFlags & ~InsertDeleteFlags::OBJECTS), nullptr, pClipDoc, false, false, true, bSkipEmpty); } if (pMixDoc.get()) { for (size_t i = 0, n = aRanges.size(); i < n; ++i) - pDoc->MixDocument(*aRanges[i], nFunction, bSkipEmpty, pMixDoc.get()); + pDoc->MixDocument(aRanges[i], nFunction, bSkipEmpty, pMixDoc.get()); } AdjustBlockHeight(); // update row heights before pasting objects @@ -1734,7 +1731,7 @@ bool ScViewFunc::PasteFromClipToMultiRanges( for (size_t i = 0, n = aRanges.size(); i < n; ++i) { pDoc->CopyFromClip( - *aRanges[i], aMark, InsertDeleteFlags::OBJECTS, nullptr, pClipDoc, + aRanges[i], aMark, InsertDeleteFlags::OBJECTS, nullptr, pClipDoc, false, false, true, bSkipEmpty); } } @@ -1790,14 +1787,14 @@ void ScViewFunc::PostPasteFromClip(const ScRangeList& rPasteRanges, const ScMark ScRangeList aChangeRanges; for (size_t i = 0, n = rPasteRanges.size(); i < n; ++i) { - const ScRange& r = *rPasteRanges[i]; + const ScRange& r = rPasteRanges[i]; ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end(); for (; itr != itrEnd; ++itr) { ScRange aChangeRange(r); aChangeRange.aStart.SetTab(*itr); aChangeRange.aEnd.SetTab(*itr); - aChangeRanges.Append(aChangeRange); + aChangeRanges.push_back(aChangeRange); } } HelperNotifyChanges::Notify(*pModelObj, aChangeRanges); diff --git a/sc/source/ui/view/viewfun4.cxx b/sc/source/ui/view/viewfun4.cxx index 78bdd8eb7cc2..498da899c3b7 100644 --- a/sc/source/ui/view/viewfun4.cxx +++ b/sc/source/ui/view/viewfun4.cxx @@ -239,7 +239,7 @@ void ScViewFunc::DoRefConversion() SCTAB i = *itr; for (size_t j = 0; j < nCount; ++j) { - ScRange aRange = *(*xRanges)[j]; + ScRange aRange = (*xRanges)[j]; aRange.aStart.SetTab(i); aRange.aEnd.SetTab(i); ScCellIterator aIter( pDoc, aRange ); diff --git a/sc/source/ui/view/viewfun6.cxx b/sc/source/ui/view/viewfun6.cxx index 6e13f26e27e7..ffe5035fe97b 100644 --- a/sc/source/ui/view/viewfun6.cxx +++ b/sc/source/ui/view/viewfun6.cxx @@ -128,25 +128,24 @@ void ScViewFunc::MarkAndJumpToRanges(const ScRangeList& rRanges) size_t ListSize = aRanges.size(); for ( size_t i = 0; i < ListSize; ++i ) { - const ScRange* p = aRanges[i]; + const ScRange & r = aRanges[i]; // Collect only those ranges that are on the same sheet as the current // cursor. - if (p->aStart.Tab() == aCurPos.Tab()) - aRangesToMark.Append(*p); + if (r.aStart.Tab() == aCurPos.Tab()) + aRangesToMark.push_back(r); } if (aRangesToMark.empty()) return; // Jump to the first range of all precedent ranges. - const ScRange* p = aRangesToMark.front(); - lcl_jumpToRange(*p, &rView, &pDocSh->GetDocument()); + const ScRange & r = aRangesToMark.front(); + lcl_jumpToRange(r, &rView, &pDocSh->GetDocument()); ListSize = aRangesToMark.size(); for ( size_t i = 0; i < ListSize; ++i ) { - p = aRangesToMark[i]; - MarkRange(*p, false, true); + MarkRange(aRangesToMark[i], false, true); } } @@ -161,7 +160,7 @@ void ScViewFunc::DetectiveMarkPred() if (rMarkData.IsMarked() || rMarkData.IsMultiMarked()) rMarkData.FillRangeListWithMarks(&aRanges, false); else - aRanges.Append(aCurPos); + aRanges.push_back(aCurPos); vector<ScTokenRef> aRefTokens; pDocSh->GetDocFunc().DetectiveCollectAllPreds(aRanges, aRefTokens); @@ -225,7 +224,7 @@ void ScViewFunc::DetectiveMarkSucc() if (rMarkData.IsMarked() || rMarkData.IsMultiMarked()) rMarkData.FillRangeListWithMarks(&aRanges, false); else - aRanges.Append(aCurPos); + aRanges.push_back(aCurPos); vector<ScTokenRef> aRefTokens; pDocSh->GetDocFunc().DetectiveCollectAllSuccs(aRanges, aRefTokens); diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx index bd21e085d265..8e516e358593 100644 --- a/sc/source/ui/view/viewfunc.cxx +++ b/sc/source/ui/view/viewfunc.cxx @@ -324,7 +324,7 @@ namespace HelperNotifyChanges ScRangeList aChangeRanges; ScMarkData::iterator itr = rMark.begin(), itrEnd = rMark.end(); for (; itr != itrEnd; ++itr) - aChangeRanges.Append( ScRange( nCol, nRow, *itr ) ); + aChangeRanges.push_back( ScRange( nCol, nRow, *itr ) ); HelperNotifyChanges::Notify(*pModelObj, aChangeRanges, "cell-change"); } @@ -1162,7 +1162,7 @@ void ScViewFunc::ApplySelectionPattern( const ScPatternAttr& rAttr, bool bCursor ScRange aChangeRange( aMarkRange ); aChangeRange.aStart.SetTab( *itr ); aChangeRange.aEnd.SetTab( *itr ); - aChangeRanges.Append( aChangeRange ); + aChangeRanges.push_back( aChangeRange ); } SCCOL nStartCol = aMarkRange.aStart.Col(); @@ -1225,7 +1225,7 @@ void ScViewFunc::ApplySelectionPattern( const ScPatternAttr& rAttr, bool bCursor pNewEditData = pEditObj->Clone(); } - aChangeRanges.Append(aPos); + aChangeRanges.push_back(aPos); std::unique_ptr<ScPatternAttr> pOldPat(new ScPatternAttr(*rDoc.GetPattern( nCol, nRow, nTab ))); rDoc.ApplyPattern( nCol, nRow, nTab, rAttr ); @@ -1965,7 +1965,7 @@ void ScViewFunc::DeleteContents( InsertDeleteFlags nFlags ) ScRangeList aChangeRanges; if ( bSimple ) { - aChangeRanges.Append( aMarkRange ); + aChangeRanges.push_back( aMarkRange ); } else { @@ -2291,7 +2291,7 @@ void ScViewFunc::SetWidthOrHeight( SCCOL nEndCol = rRange.mnEnd; for ( SCCOL nCol = nStartCol; nCol <= nEndCol; ++nCol ) { - aChangeRanges.Append( ScRange( nCol, 0, nTab ) ); + aChangeRanges.push_back( ScRange( nCol, 0, nTab ) ); } } } |