summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noelgrandin@gmail.com>2022-08-06 09:37:00 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2022-08-06 12:04:43 +0200
commit36333de160c88a3190d799c031b16e1ef6bcaa86 (patch)
tree4e0859e1960800b4c45921966438d2e695b9299f
parent28c4c72a4e81821d9e567757725937f74a6d114f (diff)
no need to allocate on heap here
Change-Id: I889690c136f200cffd0398254ec9935e2027a32c Reviewed-on: https://gerrit.libreoffice.org/c/core/+/137893 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--sw/inc/ndarr.hxx4
-rw-r--r--sw/source/core/docnode/ndtbl.cxx6
-rw-r--r--sw/source/core/unocore/unotext.cxx14
3 files changed, 12 insertions, 12 deletions
diff --git a/sw/inc/ndarr.hxx b/sw/inc/ndarr.hxx
index 683cfde170bf..1b1227549583 100644
--- a/sw/inc/ndarr.hxx
+++ b/sw/inc/ndarr.hxx
@@ -25,6 +25,7 @@
#include <limits>
#include <vector>
#include <memory>
+#include <optional>
#include "bparr.hxx"
#include "ndtyp.hxx"
@@ -260,7 +261,8 @@ public:
SwTextFormatColl* pTextColl,
SwUndoTextToTable* pUndo );
- std::unique_ptr<SwNodeRange> ExpandRangeForTableBox(const SwNodeRange & rRange);
+ void ExpandRangeForTableBox(const SwNodeRange & rRange,
+ std::optional<SwNodeRange>& rExpandedRange);
/// create a table from a vector of NodeRanges - API support
SwTableNode* TextToTable( const TableRanges_t& rTableNodes,
diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx
index 9f4ff4cacade..9f8ab820b4a0 100644
--- a/sw/source/core/docnode/ndtbl.cxx
+++ b/sw/source/core/docnode/ndtbl.cxx
@@ -1273,7 +1273,7 @@ const SwTable* SwDoc::TextToTable( const std::vector< std::vector<SwNodeRange> >
return &rNdTable;
}
-std::unique_ptr<SwNodeRange> SwNodes::ExpandRangeForTableBox(const SwNodeRange & rRange)
+void SwNodes::ExpandRangeForTableBox(const SwNodeRange & rRange, std::optional<SwNodeRange>& rExpandedRange)
{
bool bChanged = false;
@@ -1328,10 +1328,8 @@ std::unique_ptr<SwNodeRange> SwNodes::ExpandRangeForTableBox(const SwNodeRange &
pNode = &aIndex.GetNode();
}
- std::unique_ptr<SwNodeRange> pResult;
if (bChanged)
- pResult.reset(new SwNodeRange(aNewStart, aNewEnd));
- return pResult;
+ rExpandedRange.emplace(aNewStart, aNewEnd);
}
static void
diff --git a/sw/source/core/unocore/unotext.cxx b/sw/source/core/unocore/unotext.cxx
index d5e2cac57e35..c2440ffb1a8b 100644
--- a/sw/source/core/unocore/unotext.cxx
+++ b/sw/source/core/unocore/unotext.cxx
@@ -1925,23 +1925,23 @@ void SwXText::Impl::ConvertCell(
SwNodeRange aTmpRange(aStartCellPam.Start()->nNode,
aEndCellPam.End()->nNode);
- std::unique_ptr<SwNodeRange> pCorrectedRange =
- m_pDoc->GetNodes().ExpandRangeForTableBox(aTmpRange);
+ std::optional<SwNodeRange> oCorrectedRange;
+ m_pDoc->GetNodes().ExpandRangeForTableBox(aTmpRange, oCorrectedRange);
- if (pCorrectedRange)
+ if (oCorrectedRange)
{
- SwPaM aNewStartPaM(pCorrectedRange->aStart, 0);
+ SwPaM aNewStartPaM(oCorrectedRange->aStart, 0);
aStartCellPam = aNewStartPaM;
sal_Int32 nEndLen = 0;
- SwTextNode * pTextNode = pCorrectedRange->aEnd.GetNode().GetTextNode();
+ SwTextNode * pTextNode = oCorrectedRange->aEnd.GetNode().GetTextNode();
if (pTextNode != nullptr)
nEndLen = pTextNode->Len();
- SwPaM aNewEndPaM(pCorrectedRange->aEnd, nEndLen);
+ SwPaM aNewEndPaM(oCorrectedRange->aEnd, nEndLen);
aEndCellPam = aNewEndPaM;
- pCorrectedRange.reset();
+ oCorrectedRange.reset();
}
/** check the nodes between start and end