[Libreoffice-commits] core.git: sc/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Fri Aug 17 08:30:48 UTC 2018
sc/source/filter/xml/XMLStylesExportHelper.cxx | 85 ++++++++-----------------
sc/source/filter/xml/XMLStylesExportHelper.hxx | 10 +-
sc/source/filter/xml/xmlexprt.cxx | 30 ++------
3 files changed, 43 insertions(+), 82 deletions(-)
New commits:
commit d94ec445b7377062a5b6503c2dc4a3182612cd0e
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Thu Aug 16 11:00:46 2018 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Fri Aug 17 10:30:23 2018 +0200
loplugin:useuniqueptr in ScFormatRangeStyles
no need to store a ref-counted thing like OUString on the heap, just put
it directly inside a std::vector.
And no need to store a dynamic container like std::list on the heap
either, just put it directly inside a std::vector.
Change-Id: If14a620916caab543d799ca868ee94129a51c672
Reviewed-on: https://gerrit.libreoffice.org/59224
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/source/filter/xml/XMLStylesExportHelper.cxx b/sc/source/filter/xml/XMLStylesExportHelper.cxx
index dba0fee848f6..3ee8db545ea9 100644
--- a/sc/source/filter/xml/XMLStylesExportHelper.cxx
+++ b/sc/source/filter/xml/XMLStylesExportHelper.cxx
@@ -703,27 +703,6 @@ ScFormatRangeStyles::ScFormatRangeStyles()
ScFormatRangeStyles::~ScFormatRangeStyles()
{
- auto i(aStyleNames.begin());
- auto endi(aStyleNames.end());
- while (i != endi)
- {
- delete *i;
- ++i;
- }
- i = aAutoStyleNames.begin();
- endi = aAutoStyleNames.end();
- while (i != endi)
- {
- delete *i;
- ++i;
- }
- ScMyFormatRangeListVec::iterator j(aTables.begin());
- ScMyFormatRangeListVec::iterator endj(aTables.end());
- while (j != endj)
- {
- delete *j;
- ++j;
- }
}
void ScFormatRangeStyles::AddNewTable(const sal_Int32 nTable)
@@ -732,16 +711,15 @@ void ScFormatRangeStyles::AddNewTable(const sal_Int32 nTable)
if (nTable > nSize)
for (sal_Int32 i = nSize; i < nTable; ++i)
{
- ScMyFormatRangeAddresses* aRangeAddresses(new ScMyFormatRangeAddresses);
- aTables.push_back(aRangeAddresses);
+ aTables.emplace_back();
}
}
-bool ScFormatRangeStyles::AddStyleName(OUString* rpString, sal_Int32& rIndex, const bool bIsAutoStyle)
+bool ScFormatRangeStyles::AddStyleName(OUString const & rString, sal_Int32& rIndex, const bool bIsAutoStyle)
{
if (bIsAutoStyle)
{
- aAutoStyleNames.push_back(rpString);
+ aAutoStyleNames.push_back(rString);
rIndex = aAutoStyleNames.size() - 1;
return true;
}
@@ -752,7 +730,7 @@ bool ScFormatRangeStyles::AddStyleName(OUString* rpString, sal_Int32& rIndex, co
sal_Int32 i(nCount - 1);
while ((i >= 0) && (!bFound))
{
- if (*aStyleNames.at(i) == *rpString)
+ if (aStyleNames.at(i) == rString)
bFound = true;
else
i--;
@@ -764,7 +742,7 @@ bool ScFormatRangeStyles::AddStyleName(OUString* rpString, sal_Int32& rIndex, co
}
else
{
- aStyleNames.push_back(rpString);
+ aStyleNames.push_back(rString);
rIndex = aStyleNames.size() - 1;
return true;
}
@@ -776,7 +754,7 @@ sal_Int32 ScFormatRangeStyles::GetIndexOfStyleName(const OUString& rString, cons
sal_Int32 nPrefixLength(rPrefix.getLength());
OUString sTemp(rString.copy(nPrefixLength));
sal_Int32 nIndex(sTemp.toInt32());
- if (nIndex > 0 && static_cast<size_t>(nIndex-1) < aAutoStyleNames.size() && *aAutoStyleNames.at(nIndex - 1) == rString)
+ if (nIndex > 0 && static_cast<size_t>(nIndex-1) < aAutoStyleNames.size() && aAutoStyleNames.at(nIndex - 1) == rString)
{
bIsAutoStyle = true;
return nIndex - 1;
@@ -787,7 +765,7 @@ sal_Int32 ScFormatRangeStyles::GetIndexOfStyleName(const OUString& rString, cons
bool bFound(false);
while (!bFound && static_cast<size_t>(i) < aStyleNames.size())
{
- if (*aStyleNames[i] == rString)
+ if (aStyleNames[i] == rString)
bFound = true;
else
++i;
@@ -802,7 +780,7 @@ sal_Int32 ScFormatRangeStyles::GetIndexOfStyleName(const OUString& rString, cons
i = 0;
while (!bFound && static_cast<size_t>(i) < aAutoStyleNames.size())
{
- if (*aAutoStyleNames[i] == rString)
+ if (aAutoStyleNames[i] == rString)
bFound = true;
else
++i;
@@ -824,21 +802,16 @@ sal_Int32 ScFormatRangeStyles::GetStyleNameIndex(const sal_Int32 nTable,
OSL_ENSURE(static_cast<size_t>(nTable) < aTables.size(), "wrong table");
if (static_cast<size_t>(nTable) >= aTables.size())
return -1;
- ScMyFormatRangeAddresses* pFormatRanges(aTables[nTable]);
- ScMyFormatRangeAddresses::iterator aItr(pFormatRanges->begin());
- ScMyFormatRangeAddresses::iterator aEndItr(pFormatRanges->end());
- while (aItr != aEndItr)
+ for (const ScMyFormatRange & rFormatRange : aTables[nTable])
{
- if (((*aItr).aRangeAddress.StartColumn <= nColumn) &&
- ((*aItr).aRangeAddress.EndColumn >= nColumn) &&
- ((*aItr).aRangeAddress.StartRow <= nRow) &&
- ((*aItr).aRangeAddress.EndRow >= nRow))
+ if ((rFormatRange.aRangeAddress.StartColumn <= nColumn) &&
+ (rFormatRange.aRangeAddress.EndColumn >= nColumn) &&
+ (rFormatRange.aRangeAddress.StartRow <= nRow) &&
+ (rFormatRange.aRangeAddress.EndRow >= nRow))
{
- bIsAutoStyle = aItr->bIsAutoStyle;
- return (*aItr).nStyleNameIndex;
+ bIsAutoStyle = rFormatRange.bIsAutoStyle;
+ return rFormatRange.nStyleNameIndex;
}
- else
- ++aItr;
}
return -1;
}
@@ -849,9 +822,9 @@ sal_Int32 ScFormatRangeStyles::GetStyleNameIndex(const sal_Int32 nTable, const s
OSL_ENSURE(static_cast<size_t>(nTable) < aTables.size(), "wrong table");
if (static_cast<size_t>(nTable) >= aTables.size())
return -1;
- ScMyFormatRangeAddresses* pFormatRanges(aTables[nTable]);
- ScMyFormatRangeAddresses::iterator aItr(pFormatRanges->begin());
- ScMyFormatRangeAddresses::iterator aEndItr(pFormatRanges->end());
+ ScMyFormatRangeAddresses& rFormatRanges(aTables[nTable]);
+ ScMyFormatRangeAddresses::iterator aItr(rFormatRanges.begin());
+ ScMyFormatRangeAddresses::iterator aEndItr(rFormatRanges.end());
while (aItr != aEndItr)
{
if (((*aItr).aRangeAddress.StartColumn <= nColumn) &&
@@ -874,7 +847,7 @@ sal_Int32 ScFormatRangeStyles::GetStyleNameIndex(const sal_Int32 nTable, const s
else
{
if ((*aItr).aRangeAddress.EndRow < nRemoveBeforeRow)
- aItr = pFormatRanges->erase(aItr);
+ aItr = rFormatRanges.erase(aItr);
else
++aItr;
}
@@ -887,9 +860,9 @@ void ScFormatRangeStyles::GetFormatRanges(const sal_Int32 nStartColumn, const sa
{
sal_Int32 nTotalColumns(nEndColumn - nStartColumn + 1);
OSL_ENSURE(static_cast<size_t>(nTable) < aTables.size(), "wrong table");
- ScMyFormatRangeAddresses* pFormatRanges(aTables[nTable]);
- ScMyFormatRangeAddresses::iterator aItr(pFormatRanges->begin());
- ScMyFormatRangeAddresses::iterator aEndItr(pFormatRanges->end());
+ ScMyFormatRangeAddresses& rFormatRanges(aTables[nTable]);
+ ScMyFormatRangeAddresses::iterator aItr(rFormatRanges.begin());
+ ScMyFormatRangeAddresses::iterator aEndItr(rFormatRanges.end());
sal_Int32 nColumns = 0;
while (aItr != aEndItr && nColumns < nTotalColumns)
{
@@ -937,7 +910,7 @@ void ScFormatRangeStyles::GetFormatRanges(const sal_Int32 nStartColumn, const sa
}
else
if(aItr->aRangeAddress.EndRow < nRow)
- aItr = pFormatRanges->erase(aItr);
+ aItr = rFormatRanges.erase(aItr);
else
++aItr;
}
@@ -955,11 +928,11 @@ void ScFormatRangeStyles::AddRangeStyleName(const table::CellRangeAddress& rCell
aFormatRange.nNumberFormat = nNumberFormat;
aFormatRange.bIsAutoStyle = bIsAutoStyle;
OSL_ENSURE(static_cast<size_t>(rCellRangeAddress.Sheet) < aTables.size(), "wrong table");
- ScMyFormatRangeAddresses* pFormatRanges(aTables[rCellRangeAddress.Sheet]);
- pFormatRanges->push_back(aFormatRange);
+ ScMyFormatRangeAddresses& rFormatRanges(aTables[rCellRangeAddress.Sheet]);
+ rFormatRanges.push_back(aFormatRange);
}
-OUString* ScFormatRangeStyles::GetStyleNameByIndex(const sal_Int32 nIndex, const bool bIsAutoStyle)
+OUString & ScFormatRangeStyles::GetStyleNameByIndex(const sal_Int32 nIndex, const bool bIsAutoStyle)
{
if (bIsAutoStyle)
return aAutoStyleNames[nIndex];
@@ -969,10 +942,8 @@ OUString* ScFormatRangeStyles::GetStyleNameByIndex(const sal_Int32 nIndex, const
void ScFormatRangeStyles::Sort()
{
- sal_Int32 nTables = aTables.size();
- for (sal_Int32 i = 0; i < nTables; ++i)
- if (!aTables[i]->empty())
- aTables[i]->sort();
+ for (auto & rTable : aTables)
+ rTable.sort();
}
ScColumnRowStylesBase::ScColumnRowStylesBase()
diff --git a/sc/source/filter/xml/XMLStylesExportHelper.hxx b/sc/source/filter/xml/XMLStylesExportHelper.hxx
index 478e94d75f7f..3fa54f49919e 100644
--- a/sc/source/filter/xml/XMLStylesExportHelper.hxx
+++ b/sc/source/filter/xml/XMLStylesExportHelper.hxx
@@ -174,11 +174,11 @@ struct ScMyFormatRange
class ScFormatRangeStyles
{
typedef std::list<ScMyFormatRange> ScMyFormatRangeAddresses;
- typedef std::vector<ScMyFormatRangeAddresses*> ScMyFormatRangeListVec;
+ typedef std::vector<ScMyFormatRangeAddresses> ScMyFormatRangeListVec;
ScMyFormatRangeListVec aTables;
- std::vector<OUString*> aStyleNames;
- std::vector<OUString*> aAutoStyleNames;
+ std::vector<OUString> aStyleNames;
+ std::vector<OUString> aAutoStyleNames;
const ScMyDefaultStyleList* pColDefaults;
public:
@@ -187,7 +187,7 @@ public:
void SetColDefaults(const ScMyDefaultStyleList* pDefaults) { pColDefaults = pDefaults; }
void AddNewTable(const sal_Int32 nTable);
- bool AddStyleName(OUString* pString, sal_Int32& rIndex, const bool bIsAutoStyle = true);
+ bool AddStyleName(const OUString& rString, sal_Int32& rIndex, const bool bIsAutoStyle = true);
sal_Int32 GetIndexOfStyleName(const OUString& rString, const OUString& rPrefix, bool& bIsAutoStyle);
// does not delete ranges
sal_Int32 GetStyleNameIndex(const sal_Int32 nTable, const sal_Int32 nColumn, const sal_Int32 nRow,
@@ -199,7 +199,7 @@ public:
const sal_Int32 nTable, ScRowFormatRanges* pFormatRanges);
void AddRangeStyleName(const css::table::CellRangeAddress& rCellRangeAddress, const sal_Int32 nStringIndex,
const bool bIsAutoStyle, const sal_Int32 nValidationIndex, const sal_Int32 nNumberFormat);
- OUString* GetStyleNameByIndex(const sal_Int32 nIndex, const bool bIsAutoStyle);
+ OUString& GetStyleNameByIndex(const sal_Int32 nIndex, const bool bIsAutoStyle);
void Sort();
};
diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx
index 9fffd6a4c637..8d48be539110 100644
--- a/sc/source/filter/xml/xmlexprt.cxx
+++ b/sc/source/filter/xml/xmlexprt.cxx
@@ -756,7 +756,7 @@ void ScXMLExport::WriteSingleColumn(const sal_Int32 nRepeatColumns, const sal_In
AddAttribute(sAttrColumnsRepeated, sOUEndCol);
}
if (nIndex != -1)
- AddAttribute(XML_NAMESPACE_TABLE, XML_DEFAULT_CELL_STYLE_NAME, *pCellStyles->GetStyleNameByIndex(nIndex, bIsAutoStyle));
+ AddAttribute(XML_NAMESPACE_TABLE, XML_DEFAULT_CELL_STYLE_NAME, pCellStyles->GetStyleNameByIndex(nIndex, bIsAutoStyle));
SvXMLElementExport aElemC(*this, sElemCol, true, true);
}
@@ -922,9 +922,7 @@ void ScXMLExport::ExportExternalRefCacheStyles()
sal_Int32 nIndex;
if (GetAutoStylePool()->Add(aName, XML_STYLE_FAMILY_TABLE_CELL, aDefaultStyle, aProps))
{
- OUString* pTemp(new OUString(aName));
- if (!pCellStyles->AddStyleName(pTemp, nIndex))
- delete pTemp;
+ pCellStyles->AddStyleName(aName, nIndex);
}
else
{
@@ -1329,7 +1327,7 @@ void ScXMLExport::WriteRowContent()
else
{
if (nIndex != -1)
- AddAttribute(sAttrStyleName, *pCellStyles->GetStyleNameByIndex(nIndex, bIsAutoStyle));
+ AddAttribute(sAttrStyleName, pCellStyles->GetStyleNameByIndex(nIndex, bIsAutoStyle));
if (nPrevValidationIndex > -1)
AddAttribute(XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATION_NAME, pValidationsContainer->GetValidationName(nPrevValidationIndex));
if (nCols > 1)
@@ -1350,7 +1348,7 @@ void ScXMLExport::WriteRowContent()
if (!bIsFirst)
{
if (nIndex != -1)
- AddAttribute(sAttrStyleName, *pCellStyles->GetStyleNameByIndex(nIndex, bIsAutoStyle));
+ AddAttribute(sAttrStyleName, pCellStyles->GetStyleNameByIndex(nIndex, bIsAutoStyle));
if (nPrevValidationIndex > -1)
AddAttribute(XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATION_NAME, pValidationsContainer->GetValidationName(nPrevValidationIndex));
if (nCols > 1)
@@ -2104,9 +2102,7 @@ void ScXMLExport::AddStyleFromCells(const uno::Reference<beans::XPropertySet>& x
{
GetAutoStylePool()->RegisterName(XML_STYLE_FAMILY_TABLE_CELL, *pOldName);
// add to pCellStyles, so the name is found for normal sheets
- OUString* pTemp(new OUString(*pOldName));
- if (!pCellStyles->AddStyleName(pTemp, nIndex))
- delete pTemp;
+ pCellStyles->AddStyleName(*pOldName, nIndex);
}
}
else
@@ -2129,9 +2125,7 @@ void ScXMLExport::AddStyleFromCells(const uno::Reference<beans::XPropertySet>& x
bool bIsAutoStyle(true);
if (bAdded || GetAutoStylePool()->Add(sName, XML_STYLE_FAMILY_TABLE_CELL, sStyleName, aPropStates))
{
- OUString* pTemp(new OUString(sName));
- if (!pCellStyles->AddStyleName(pTemp, nIndex))
- delete pTemp;
+ pCellStyles->AddStyleName(sName, nIndex);
}
else
nIndex = pCellStyles->GetIndexOfStyleName(sName, XML_STYLE_FAMILY_TABLE_CELL_STYLES_PREFIX, bIsAutoStyle);
@@ -2150,13 +2144,9 @@ void ScXMLExport::AddStyleFromCells(const uno::Reference<beans::XPropertySet>& x
}
else
{
- OUString* pTemp(new OUString(EncodeStyleName(sStyleName)));
+ OUString sEncodedStyleName(EncodeStyleName(sStyleName));
sal_Int32 nIndex(0);
- if (!pCellStyles->AddStyleName(pTemp, nIndex, false))
- {
- delete pTemp;
- pTemp = nullptr;
- }
+ pCellStyles->AddStyleName(sEncodedStyleName, nIndex, false);
if ( !pOldName )
{
uno::Sequence<table::CellRangeAddress> aAddresses(xCellRanges->getRangeAddresses());
@@ -3187,7 +3177,7 @@ void ScXMLExport::WriteCell(ScMyCell& aCell, sal_Int32 nEqualCellCount)
SetRepeatAttribute(nEqualCellCount, (aCell.nType != table::CellContentType_EMPTY));
if (aCell.nStyleIndex != -1)
- AddAttribute(sAttrStyleName, *pCellStyles->GetStyleNameByIndex(aCell.nStyleIndex, aCell.bIsAutoStyle));
+ AddAttribute(sAttrStyleName, pCellStyles->GetStyleNameByIndex(aCell.nStyleIndex, aCell.bIsAutoStyle));
if (aCell.nValidationIndex > -1)
AddAttribute(XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATION_NAME, pValidationsContainer->GetValidationName(aCell.nValidationIndex));
bool bIsMatrix(aCell.bIsMatrixBase || aCell.bIsMatrixCovered);
@@ -5058,7 +5048,7 @@ void ScXMLExport::WriteExternalRefCaches()
sal_Int32 nIndex = GetNumberFormatStyleIndex(nNumFmt);
if (nIndex >= 0)
{
- const OUString aStyleName = *pCellStyles->GetStyleNameByIndex(nIndex, true);
+ const OUString & aStyleName = pCellStyles->GetStyleNameByIndex(nIndex, true);
AddAttribute(XML_NAMESPACE_TABLE, XML_STYLE_NAME, aStyleName);
}
More information about the Libreoffice-commits
mailing list