[Libreoffice-commits] core.git: 2 commits - sc/inc sc/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Wed Aug 15 06:37:28 UTC 2018
sc/inc/chgtrack.hxx | 28 ++------------------
sc/inc/detfunc.hxx | 4 +-
sc/source/core/tool/chgtrack.cxx | 53 ++++++++++++---------------------------
sc/source/core/tool/detfunc.cxx | 22 ++++++++--------
4 files changed, 33 insertions(+), 74 deletions(-)
New commits:
commit d5f9675c2dba0c2e8993078946ee669e1d61b086
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Mon Aug 13 09:55:51 2018 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Wed Aug 15 08:37:15 2018 +0200
loplugin:returnconstant in ScDetectiveFunc
Change-Id: Id6eef7772b32a93d43d0417c5b6e24d9189c4e73
Reviewed-on: https://gerrit.libreoffice.org/58955
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/inc/detfunc.hxx b/sc/inc/detfunc.hxx
index a91871560445..e0afe1ce8eb0 100644
--- a/sc/inc/detfunc.hxx
+++ b/sc/inc/detfunc.hxx
@@ -80,12 +80,12 @@ class SC_DLLPUBLIC ScDetectiveFunc
bool HasError( const ScRange& rRange, ScAddress& rErrPos );
/// called from DrawEntry/DrawAlienEntry and InsertObject
- bool InsertArrow( SCCOL nCol, SCROW nRow,
+ void InsertArrow( SCCOL nCol, SCROW nRow,
SCCOL nRefStartCol, SCROW nRefStartRow,
SCCOL nRefEndCol, SCROW nRefEndRow,
bool bFromOtherTab, bool bRed,
ScDetectiveData& rData );
- bool InsertToOtherTab( SCCOL nStartCol, SCROW nStartRow,
+ void InsertToOtherTab( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow, bool bRed,
ScDetectiveData& rData );
diff --git a/sc/source/core/tool/detfunc.cxx b/sc/source/core/tool/detfunc.cxx
index a356ee396c09..c45e0e4a13ab 100644
--- a/sc/source/core/tool/detfunc.cxx
+++ b/sc/source/core/tool/detfunc.cxx
@@ -438,7 +438,7 @@ bool ScDetectiveFunc::IsNonAlienArrow( const SdrObject* pObject )
// InsertXXX: called from DrawEntry/DrawAlienEntry and InsertObject
-bool ScDetectiveFunc::InsertArrow( SCCOL nCol, SCROW nRow,
+void ScDetectiveFunc::InsertArrow( SCCOL nCol, SCROW nRow,
SCCOL nRefStartCol, SCROW nRefStartRow,
SCCOL nRefEndCol, SCROW nRefEndRow,
bool bFromOtherTab, bool bRed,
@@ -517,10 +517,9 @@ bool ScDetectiveFunc::InsertArrow( SCCOL nCol, SCROW nRow,
pData->meType = ScDrawObjData::DetectiveArrow;
Modified();
- return true;
}
-bool ScDetectiveFunc::InsertToOtherTab( SCCOL nStartCol, SCROW nStartRow,
+void ScDetectiveFunc::InsertToOtherTab( SCCOL nStartCol, SCROW nStartRow,
SCCOL nEndCol, SCROW nEndRow, bool bRed,
ScDetectiveData& rData )
{
@@ -583,7 +582,6 @@ bool ScDetectiveFunc::InsertToOtherTab( SCCOL nStartCol, SCROW nStartRow,
pData->maEnd.SetInvalid();
Modified();
- return true;
}
// DrawEntry: formula from this spreadsheet,
@@ -604,10 +602,11 @@ bool ScDetectiveFunc::DrawEntry( SCCOL nCol, SCROW nRow,
bool bError = HasError( rRef, aErrorPos );
bool bAlien = ( rRef.aEnd.Tab() < nTab || rRef.aStart.Tab() > nTab );
- return InsertArrow( nCol, nRow,
- rRef.aStart.Col(), rRef.aStart.Row(),
- rRef.aEnd.Col(), rRef.aEnd.Row(),
- bAlien, bError, rData );
+ InsertArrow( nCol, nRow,
+ rRef.aStart.Col(), rRef.aStart.Row(),
+ rRef.aEnd.Col(), rRef.aEnd.Row(),
+ bAlien, bError, rData );
+ return true;
}
bool ScDetectiveFunc::DrawAlienEntry( const ScRange& rRef,
@@ -619,9 +618,10 @@ bool ScDetectiveFunc::DrawAlienEntry( const ScRange& rRef,
ScAddress aErrorPos;
bool bError = HasError( rRef, aErrorPos );
- return InsertToOtherTab( rRef.aStart.Col(), rRef.aStart.Row(),
- rRef.aEnd.Col(), rRef.aEnd.Row(),
- bError, rData );
+ InsertToOtherTab( rRef.aStart.Col(), rRef.aStart.Row(),
+ rRef.aEnd.Col(), rRef.aEnd.Row(),
+ bError, rData );
+ return true;
}
void ScDetectiveFunc::DrawCircle( SCCOL nCol, SCROW nRow, ScDetectiveData& rData )
commit 619a6fc90d9682d859e43e5297d32a0f98738c0f
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Tue Aug 14 15:47:41 2018 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Wed Aug 15 08:37:04 2018 +0200
convert ScChangeActionCellListEntry to std::vector
no need for a linked list where each cell contains a single pointer
Change-Id: I5353b178ddf3c6a69762edc23612995efd81fb41
Reviewed-on: https://gerrit.libreoffice.org/58987
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/inc/chgtrack.hxx b/sc/inc/chgtrack.hxx
index ef7a237645c2..9f554ff9c347 100644
--- a/sc/inc/chgtrack.hxx
+++ b/sc/inc/chgtrack.hxx
@@ -174,27 +174,6 @@ public:
// this is only for the XML Export in the hxx
class ScChangeActionContent;
-class ScChangeActionCellListEntry
-{
- friend class ScChangeAction;
- friend class ScChangeActionDel;
- friend class ScChangeActionMove;
- friend class ScChangeTrack;
-
- ScChangeActionCellListEntry* pNext;
- ScChangeActionContent* pContent;
-
- ScChangeActionCellListEntry(
- ScChangeActionContent* pContentP,
- ScChangeActionCellListEntry* pNextP )
- : pNext( pNextP ),
- pContent( pContentP )
- {}
-
-public:
- DECL_FIXEDMEMPOOL_NEWDEL( ScChangeActionCellListEntry )
-};
-
class ScChangeAction
{
friend class ScChangeTrack;
@@ -453,7 +432,7 @@ class ScChangeActionDel : public ScChangeAction
friend void ScChangeAction::Accept();
ScChangeTrack* pTrack;
- ScChangeActionCellListEntry* pFirstCell;
+ std::vector<ScChangeActionContent*> mvCells;
ScChangeActionIns* pCutOff; // cut insert
short nCutOff; // +: start -: end
ScChangeActionDelMoveEntry* pLinkMove;
@@ -528,7 +507,7 @@ class ScChangeActionMove : public ScChangeAction
ScBigRange aFromRange;
ScChangeTrack* pTrack;
- ScChangeActionCellListEntry* pFirstCell;
+ std::vector<ScChangeActionContent*> mvCells;
sal_uLong nStartLastCut; // for PasteCut undo
sal_uLong nEndLastCut;
@@ -538,7 +517,6 @@ class ScChangeActionMove : public ScChangeAction
: ScChangeAction( SC_CAT_MOVE, rToRange ),
aFromRange( rFromRange ),
pTrack( pTrackP ),
- pFirstCell( nullptr ),
nStartLastCut(0),
nEndLastCut(0)
{}
@@ -957,7 +935,7 @@ class ScChangeTrack : public utl::ConfigurationListener
const ScAddress& rPos, const ScCellValue& rCell, const ScDocument* pFromDoc );
void DeleteCellEntries(
- ScChangeActionCellListEntry*&,
+ std::vector<ScChangeActionContent*>&,
const ScChangeAction* pDeletor );
// Reject action and all dependent actions,
diff --git a/sc/source/core/tool/chgtrack.cxx b/sc/source/core/tool/chgtrack.cxx
index 77f09a9105a5..bd22f2a5381d 100644
--- a/sc/source/core/tool/chgtrack.cxx
+++ b/sc/source/core/tool/chgtrack.cxx
@@ -50,7 +50,6 @@
#include <memory>
#include <boost/property_tree/json_parser.hpp>
-IMPL_FIXEDMEMPOOL_NEWDEL( ScChangeActionCellListEntry )
IMPL_FIXEDMEMPOOL_NEWDEL( ScChangeActionLinkEntry )
ScChangeAction::ScChangeAction( ScChangeActionType eTypeP, const ScRange& rRange )
@@ -602,15 +601,13 @@ void ScChangeAction::RejectRestoreContents( ScChangeTrack* pTrack,
SCCOL nDx, SCROW nDy )
{
// Construct list of Contents
- ScChangeActionCellListEntry* pListContents = nullptr;
+ std::vector<ScChangeActionContent*> aContentsList;
for ( ScChangeActionLinkEntry* pL = pLinkDeleted; pL; pL = pL->GetNext() )
{
ScChangeAction* p = pL->GetAction();
if ( p && p->GetType() == SC_CAT_CONTENT )
{
- ScChangeActionCellListEntry* pE = new ScChangeActionCellListEntry(
- static_cast<ScChangeActionContent*>(p), pListContents );
- pListContents = pE;
+ aContentsList.push_back(static_cast<ScChangeActionContent*>(p) );
}
}
SetState( SC_CAS_REJECTED ); // Before UpdateReference for Move
@@ -619,16 +616,11 @@ void ScChangeAction::RejectRestoreContents( ScChangeTrack* pTrack,
// Work through list of Contents and delete
ScDocument* pDoc = pTrack->GetDocument();
- ScChangeActionCellListEntry* pE = pListContents;
- while ( pE )
+ for (ScChangeActionContent* pContent : aContentsList)
{
- if ( !pE->pContent->IsDeletedIn() &&
- pE->pContent->GetBigRange().aStart.IsValid( pDoc ) )
- pE->pContent->PutNewValueToDoc( pDoc, nDx, nDy );
- ScChangeActionCellListEntry* pNextEntry;
- pNextEntry = pE->pNext;
- delete pE;
- pE = pNextEntry;
+ if ( !pContent->IsDeletedIn() &&
+ pContent->GetBigRange().aStart.IsValid( pDoc ) )
+ pContent->PutNewValueToDoc( pDoc, nDx, nDy );
}
DeleteCellEntries(); // Remove generated ones
}
@@ -782,7 +774,6 @@ ScChangeActionDel::ScChangeActionDel( const ScRange& rRange,
:
ScChangeAction( SC_CAT_NONE, rRange ),
pTrack( pTrackP ),
- pFirstCell( nullptr ),
pCutOff( nullptr ),
nCutOff( 0 ),
pLinkMove( nullptr ),
@@ -821,7 +812,6 @@ ScChangeActionDel::ScChangeActionDel(
const ScChangeActionType eTypeP, const SCCOLROW nD, ScChangeTrack* pTrackP) : // which of nDx and nDy is set depends on the type
ScChangeAction(eTypeP, aBigRangeP, nActionNumber, nRejectingNumber, eStateP, aDateTimeP, aUserP, sComment),
pTrack( pTrackP ),
- pFirstCell( nullptr ),
pCutOff( nullptr ),
nCutOff( 0 ),
pLinkMove( nullptr ),
@@ -846,14 +836,12 @@ ScChangeActionDel::~ScChangeActionDel()
void ScChangeActionDel::AddContent( ScChangeActionContent* pContent )
{
- ScChangeActionCellListEntry* pE = new ScChangeActionCellListEntry(
- pContent, pFirstCell );
- pFirstCell = pE;
+ mvCells.push_back(pContent);
}
void ScChangeActionDel::DeleteCellEntries()
{
- pTrack->DeleteCellEntries( pFirstCell, this );
+ pTrack->DeleteCellEntries( mvCells, this );
}
bool ScChangeActionDel::IsBaseDelete() const
@@ -1154,7 +1142,6 @@ ScChangeActionMove::ScChangeActionMove(
ScChangeAction(SC_CAT_MOVE, aToBigRange, nActionNumber, nRejectingNumber, eStateP, aDateTimeP, aUserP, sComment),
aFromRange(aFromBigRange),
pTrack( pTrackP ),
- pFirstCell( nullptr ),
nStartLastCut(0),
nEndLastCut(0)
{
@@ -1167,14 +1154,12 @@ ScChangeActionMove::~ScChangeActionMove()
void ScChangeActionMove::AddContent( ScChangeActionContent* pContent )
{
- ScChangeActionCellListEntry* pE = new ScChangeActionCellListEntry(
- pContent, pFirstCell );
- pFirstCell = pE;
+ mvCells.push_back(pContent);
}
void ScChangeActionMove::DeleteCellEntries()
{
- pTrack->DeleteCellEntries( pFirstCell, this );
+ pTrack->DeleteCellEntries( mvCells, this );
}
void ScChangeActionMove::UpdateReference( const ScChangeTrack* /* pTrack */,
@@ -2848,21 +2833,17 @@ void ScChangeTrack::AppendInsert( const ScRange& rRange, bool bEndOfList )
Append( pAct );
}
-void ScChangeTrack::DeleteCellEntries( ScChangeActionCellListEntry*& pCellList,
+void ScChangeTrack::DeleteCellEntries( std::vector<ScChangeActionContent*>& rCellList,
const ScChangeAction* pDeletor )
{
- ScChangeActionCellListEntry* pE = pCellList;
- while ( pE )
+ for (ScChangeActionContent* pContent : rCellList)
{
- ScChangeActionCellListEntry* pNext = pE->pNext;
- pE->pContent->RemoveDeletedIn( pDeletor );
- if ( IsGenerated( pE->pContent->GetActionNumber() ) &&
- !pE->pContent->IsDeletedIn() )
- DeleteGeneratedDelContent( pE->pContent );
- delete pE;
- pE = pNext;
+ pContent->RemoveDeletedIn( pDeletor );
+ if ( IsGenerated( pContent->GetActionNumber() ) &&
+ !pContent->IsDeletedIn() )
+ DeleteGeneratedDelContent( pContent );
}
- pCellList = nullptr;
+ rCellList.clear();
}
ScChangeActionContent* ScChangeTrack::GenerateDelContent(
More information about the Libreoffice-commits
mailing list