summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-08-02 21:18:15 +0100
committerAndras Timar <andras.timar@collabora.com>2018-08-08 13:07:38 +0200
commit0a02aab6d6c95384cb6aea6ffc4d5b6fe497e4aa (patch)
tree63471348ff991c87b52967aadab74b8d7ff81363
parent6115bf07f03e7779be552d14a62bb7e722daefb5 (diff)
forcepoint#69 ditch any unclosed m_pPosAfterTOC before dropping cursor
Reviewed-on: https://gerrit.libreoffice.org/58498 Tested-by: Jenkins Reviewed-by: Michael Stahl <Michael.Stahl@cib.de> (cherry picked from commit 71aae473c9c3cf15f75e2722afc7153a3af76d44) Change-Id: I6b56a48f5449b25fe3bdc2e02d3885388b0da74f (cherry picked from commit 9b2efcf761678e24cceefa6f87300f2ffe98fb19)
-rw-r--r--sw/source/filter/ww8/ww8par.cxx1
-rw-r--r--sw/source/filter/ww8/ww8par.hxx2
-rw-r--r--sw/source/filter/ww8/ww8par5.cxx9
3 files changed, 4 insertions, 8 deletions
diff --git a/sw/source/filter/ww8/ww8par.cxx b/sw/source/filter/ww8/ww8par.cxx
index b03cea2ebaca..2d117c19eaa2 100644
--- a/sw/source/filter/ww8/ww8par.cxx
+++ b/sw/source/filter/ww8/ww8par.cxx
@@ -5478,6 +5478,7 @@ sal_uLong SwWW8ImplReader::CoreLoad(WW8Glossary *pGloss)
SAL_WARN_IF(m_pTableEndPaM, "sw.ww8", "document ended without table ending");
m_pTableEndPaM.reset(); //ensure this is deleted before pPaM
+ m_pPosAfterTOC.reset();
mpCursor.reset();
m_pPaM = nullptr;
m_pLastAnchorPos.reset();//ensure this is deleted before UpdatePageDescs
diff --git a/sw/source/filter/ww8/ww8par.hxx b/sw/source/filter/ww8/ww8par.hxx
index 6b5b65f927bb..f89f1d357f94 100644
--- a/sw/source/filter/ww8/ww8par.hxx
+++ b/sw/source/filter/ww8/ww8par.hxx
@@ -1342,7 +1342,7 @@ private:
// Indicate that current on loading a hyperlink, which is inside a TOC; Managed by Read_F_Hyperlink() and End_Field()
bool m_bLoadingTOXHyperlink;
// a document position recorded the after-position of TOC section, managed by Read_F_TOX() and End_Field()
- SwPaM* m_pPosAfterTOC;
+ std::unique_ptr<SwPaM> m_pPosAfterTOC;
// used for some dropcap tweaking
SwTextNode* m_pPreviousNode;
diff --git a/sw/source/filter/ww8/ww8par5.cxx b/sw/source/filter/ww8/ww8par5.cxx
index e8b6307ba21e..853ec7c2619a 100644
--- a/sw/source/filter/ww8/ww8par5.cxx
+++ b/sw/source/filter/ww8/ww8par5.cxx
@@ -570,8 +570,7 @@ sal_uInt16 SwWW8ImplReader::End_Field()
if (m_pPosAfterTOC)
{
*m_pPaM = *m_pPosAfterTOC;
- delete m_pPosAfterTOC;
- m_pPosAfterTOC = nullptr;
+ m_pPosAfterTOC.reset();
}
}
}
@@ -3403,11 +3402,7 @@ eF_ResT SwWW8ImplReader::Read_F_Tox( WW8FieldDesc* pF, OUString& rStr )
//The TOC field representation contents should be inserted into TOC section, but not after TOC section.
//So we need update the document position when loading TOC representation and after loading TOC;
- if (m_pPosAfterTOC)
- {
- delete m_pPosAfterTOC;
- }
- m_pPosAfterTOC = new SwPaM(*m_pPaM, m_pPaM);
+ m_pPosAfterTOC.reset(new SwPaM(*m_pPaM, m_pPaM));
(*m_pPaM).Move(fnMoveBackward);
SwPaM aRegion(*m_pPaM, m_pPaM);